gpt4 book ai didi

java - 如何在 Java 中设置 PNG 的每平方英寸点数 (DPI)?

转载 作者:行者123 更新时间:2023-12-02 07:47:15 25 4
gpt4 key购买 nike

首先,我没有代码,也不知道自己应该做什么。显然,该信息存储在 .png 文件的元数据中。我认为这应该不难做到,但事实证明这是一个挑战。

唯一看起来有点用的东西是堆栈溢出中的以下帖子。

How to set DPI information in an image?

但是,我尝试使用提供的代码和提供的网站来执行此类操作,但没有取得任何成果。

当我尝试使用迭代器时,如下所示,iw.hasNext() 和 iw.next() 均出现错误。

错误是:

  • HTMLDocument.Iterator 类型的 hasNext() 方法未定义
  • 类型不匹配:无法从 void 转换为 ImageWriter

    for (Iterator iw = (Iterator) ImageIO.getImageWritersByFormatName(formatName); iw.hasNext;) { ImageWriter writer = iw.next();

我的问题是,我从哪里开始以及我需要寻找什么?有没有您知道的例子或者您自己做过吗?

<小时/>

附注我关于“如何在图像中设置 DPI 信息?”的问题帖子是这样的...

  1. 为什么当我像他一样使用 Iterator 时,会出现错误?
  2. “INCH_2_CM”是什么意思?

我更改他的代码的方式如下...

<小时/>
    for (Iterator iw = (Iterator) ImageIO.getImageWritersByFormatName(formatName); iw.hasNext();) {
ImageWriter writer = iw.next();
ImageWriteParam writeParam = writer.getDefaultWriteParam();
ImageTypeSpecifier typeSpecifier = ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_INT_RGB);
IIOMetadata metadata = writer.getDefaultImageMetadata(typeSpecifier, writeParam);
if (metadata.isReadOnly() || !metadata.isStandardMetadataFormatSupported()) {
continue;
}

setDPI(metadata);

final ImageOutputStream stream = ImageIO.createImageOutputStream(output);
try {
writer.setOutput(stream);
writer.write(metadata, new IIOImage(gridImage, null, metadata), writeParam);
} finally {
stream.close();
}
break;
}

最佳答案

您的代码在类 javax.swing.text.html.HTMLDocument.Iteratorjava.util.Iterator 之间变得困惑。他的代码使用后者,但你的代码似乎使用前者。使用完全限定的类型,或弄清楚如何修改导入。

关于java - 如何在 Java 中设置 PNG 的每平方英寸点数 (DPI)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10660695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com