Java:如何在jpeg文件中编写自定义标记(程序员注释)
我想在jpeg文件中写一些新的用户定义标签。我使用“org.apache.commons.imaging”库处理java中的jpeg元数据。我只是不知道如何定义一个新的自定义标记;写入它,然后稍后读取标记的值 这是我的代码,它读取jpeg文件并进行输出Java:如何在jpeg文件中编写自定义标记(程序员注释),java,metadata,jpeg,exif,imaging,Java,Metadata,Jpeg,Exif,Imaging,我想在jpeg文件中写一些新的用户定义标签。我使用“org.apache.commons.imaging”库处理java中的jpeg元数据。我只是不知道如何定义一个新的自定义标记;写入它,然后稍后读取标记的值 这是我的代码,它读取jpeg文件并进行输出 public void setExifCustomTag(final File jpegImageFile, final File dst) throws IOException, ImageReadException, Imag
public void setExifCustomTag(final File jpegImageFile, final File dst) throws IOException,
ImageReadException, ImageWriteException {
OutputStream os = null;
boolean canThrow = false;
try {
TiffOutputSet outputSet = null;
final IImageMetadata metadata = Imaging.getMetadata(jpegImageFile);
final JpegImageMetadata jpegMetadata = (JpegImageMetadata) metadata;
if (null != jpegMetadata) {
// note that exif might be null if no Exif metadata is found.
final TiffImageMetadata exif = jpegMetadata.getExif();
if (null != exif) {
outputSet = exif.getOutputSet();
}
}
if (null == outputSet) {
outputSet = new TiffOutputSet();
}
TagInfoAscii tag1 = new TagInfoAscii("custom tag", 1, 20, TiffDirectoryType.EXIF_DIRECTORY_MAKER_NOTES);
outputSet.getExifDirectory().add(tag1, "custom value");
TiffOutputField to = outputSet.findField(tag1);
//How should I read the value ???????????????
os = new FileOutputStream(dst);
os = new BufferedOutputStream(os);
new ExifRewriter().updateExifMetadataLossless(jpegImageFile, os,
outputSet);
canThrow = true;
} finally {
IoUtils.closeQuietly(canThrow, os);
}
}
我不能将此作为评论,因此我必须走到这里: 你的问题需要澄清一下。有多种JPEG文件格式。编写自定义标记的过程[种类]因格式而异 您可以在任何JPEG文件中使用文本编写COM标记。 只要不使用特定文件格式使用的APPn标记之一,就可以在JPEG文件中使用任何内容编写APPn营销 在Exif中,定义了一个UserComment标记,您可以将其用于自己的数据 您的示例假定EXIF是文件格式