【发布时间】:2014-03-17 07:58:49
【问题描述】:
我一直在尝试找到一种将元数据写入 PNG 的方法,并且尝试了很多次。
我可以使用pngj 库读取数据:
PngReader pngr = new PngReader(file);
pngr.readSkippingAllRows(); // reads only metadata
for (PngChunk c : pngr.getChunksList().getChunks()) {
if (!ChunkHelper.isText(c)) continue;
PngChunkTextVar ct = (PngChunkTextVar) c;
String key = ct.getKey();
String val = ct.getVal();
System.out.print(key + " " + val + "\n" );
}
pngr.close();
而且效果很好。但我需要写信给它。
我试过了:
public boolean writeCustomData(String key, String value) throws Exception {
PngReader pngr = new PngReader(currentImage);
PngWriter png = new PngWriter(new FileOutputStream(currentImage), pngr.imgInfo);
png.getMetadata().setText(key, value);
return true;
}
但这无济于事。
我已经尝试使用Writing image metadata in Java, preferably PNG的答案
这可行(有点),但我的读取功能看不到它。
【问题讨论】: