コードがなく、何をすればいいのかわからないところから始めましょう。どうやら情報は .png ファイルのメタデータに保存されているようです。これはそれほど難しいことではないと思いますが、挑戦であることが判明しています。
多少役立つように見える唯一のものは、スタック オーバーフローでの次の投稿です。
しかし、私は提供されたコードと提供されたウェブサイトを使用してそのようなことをしようとしましたが、何も達成しませんでした.
以下のように Iterator を使用しようとすると、iw.hasNext() と iw.next() の両方でエラーが発生します。
エラーは次のとおりです。
- メソッド hasNext() は、タイプ HTMLDocument.Iterator に対して未定義です
型の不一致: void から ImageWriter に変換できません
for (イテレータ iw = (イテレータ) ImageIO.getImageWritersByFormatName(formatName); iw.hasNext;) { ImageWriter writer = iw.next();
私の質問は、どこから始めて、何を探す必要があるかということです。あなたが知っている、または自分でこれを行った例はありますか?
「画像に DPI 情報を設定する方法は?」についての私の質問に補足してください。投稿はこれです...
- 彼のように Iterator を使用すると、エラーが発生するのはなぜですか?
- "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;
}