Java 如何填充windows exif标记

Java 如何填充windows exif标记,java,exif,icafe,Java,Exif,Icafe,晚上好 我想填写jpg照片文件windows属性 显然这些是出口 [Exif IFD0] Windows XP Title [Exif IFD0] Windows XP Author [Exif IFD0] Windows XP Subject 我查看了icafe.jar的侧面,但没有找到这些标签。 我可以用icafe或其他jar库吗 import java.io.FileInputStream; import java.io.FileOutputStream; import java.uti

晚上好 我想填写jpg照片文件windows属性

显然这些是出口

[Exif IFD0] Windows XP Title
[Exif IFD0] Windows XP Author
[Exif IFD0] Windows XP Subject
我查看了icafe.jar的侧面,但没有找到这些标签。 我可以用icafe或其他jar库吗

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
import com.icafe4j.image.meta.Metadata;
import com.icafe4j.image.meta.exif.Exif;
import com.icafe4j.image.meta.jpeg.JpegExif;
import com.icafe4j.image.meta.exif.ExifTag;
import com.icafe4j.image.tiff.TiffTag;
import com.icafe4j.image.tiff.FieldType;

fin = new FileInputStream(Fm_filePathIn);
fout = new FileOutputStream(Fm_filePathOut);


List<Metadata> metaList = new ArrayList<Metadata>();
 metaList.add(populateExif(JpegExif.class));

Exif populateExif(Class<?> exifClass) throws IOException {

Exif exif = new JpegExif();

    exif.addImageField(ExifTag.WINDOWS_XP_AUTHOR, FieldType.WINDOWSXP, "Toto");
    exif.addImageField(ExifTag.WINDOWS_XP_KEYWORDS, FieldType.WINDOWSXP, "Copyright;Authorbisou");
// Insert ThumbNailIFD
    // Since we don't provide thumbnail image, it will be created later from the input stream
    exif.setThumbnailRequired(true);

    return exif;
  }


        fin.close();
        fout.close();
import java.io.FileInputStream;
导入java.io.FileOutputStream;
导入java.util.ArrayList;
导入com.icafe4j.image.meta.Metadata;
导入com.icafe4j.image.meta.exif.exif;
导入com.icafe4j.image.meta.jpeg.JpegExif;
导入com.icafe4j.image.meta.exif.ExifTag;
导入com.icafe4j.image.tiff.TiffTag;
导入com.icafe4j.image.tiff.FieldType;
fin=新的FileInputStream(Fm_filePathIn);
fout=新文件输出流(Fm_filePathOut);
List metaList=new ArrayList();
添加(populateExif(JpegExif.class));
Exif populateExif(类exifClass)引发IOException{
Exif Exif=新的JpegExif();
exif.addImageField(ExifTag.WINDOWS_XP_AUTHOR,FieldType.WINDOWSXP,“Toto”);
exif.addImageField(ExifTag.WINDOWS_XP_关键字,FieldType.WINDOWSXP,“版权;Authorbisou”);
//插入指钉ifd
//因为我们不提供缩略图,所以稍后将从输入流创建缩略图
exif.setThumbnailRequired(true);
返回exif;
}
fin.close();
fout.close();

这些标签确实存在于ICAFE中,但它们不是Exiftag。它们是TiffTag。用TiffTag替换ExifTag,它会工作的。看看TestMetada.java,它清楚地显示了这一点

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.icafe4j.image.meta.Metadata;
import com.icafe4j.image.meta.exif.Exif;
import com.icafe4j.image.meta.jpeg.JpegExif;
import com.icafe4j.image.meta.exif.ExifTag;
import com.icafe4j.image.tiff.TiffTag;
import com.icafe4j.image.tiff.FieldType;

public class TestWindowsXP {

 public static void main(String[] args) throws IOException {

    FileInputStream fin = new FileInputStream(Fm_filePathIn);
    FileOutputStream fout = new FileOutputStream(Fm_filePathOut);

    List<Metadata> metaList = new ArrayList<Metadata>();

    Exif exif = new JpegExif();

    exif.addImageField(TiffTag.WINDOWS_XP_AUTHOR, FieldType.WINDOWSXP, "Toto");
    exif.addImageField(TiffTag.WINDOWS_XP_KEYWORDS, FieldType.WINDOWSXP, "Copyright;Authorbisou");
    // Insert ThumbNailIFD
    // Since we don't provide thumbnail image, it will be created later from the input stream
    exif.setThumbnailRequired(true);

    metaList.add(exif);
    Metadata.insertMetadata(metaList, fin, fout);

    fin.close();
    fout.close();
 }
}
import java.io.FileInputStream;
导入java.io.FileNotFoundException;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.util.ArrayList;
导入java.util.List;
导入com.icafe4j.image.meta.Metadata;
导入com.icafe4j.image.meta.exif.exif;
导入com.icafe4j.image.meta.jpeg.JpegExif;
导入com.icafe4j.image.meta.exif.ExifTag;
导入com.icafe4j.image.tiff.TiffTag;
导入com.icafe4j.image.tiff.FieldType;
公共类TestWindowsXP{
公共静态void main(字符串[]args)引发IOException{
FileInputStream fin=新的FileInputStream(Fm_filePathIn);
FileOutputStream fout=新的FileOutputStream(Fm_filePathOut);
List metaList=new ArrayList();
Exif Exif=新的JpegExif();
exif.addImageField(TiffTag.WINDOWS_XP_AUTHOR,FieldType.WINDOWSXP,“Toto”);
exif.addImageField(TiffTag.WINDOWS_XP_关键字,FieldType.WINDOWSXP,“版权;Authorbisou”);
//插入指钉ifd
//因为我们不提供缩略图,所以稍后将从输入流创建缩略图
exif.setThumbnailRequired(true);
metaList.add(exif);
元数据。插入元数据(metaList、fin、fout);
fin.close();
fout.close();
}
}
下面是我右键单击结果图像->显示属性时的屏幕截图。您可以看到要插入的信息正在显示


您是否有任何代码来演示如何使用该库?此错误代码(我在filemaker的groovy扩展中使用javascript)groovy.lang.MissingPropertyException:没有此类属性:WINDOWS_XP_类作者:com.icafe4j.image.meta.exif.exittagi表示应用程序代码,与导致该错误的代码相同。耐心点,因为代码没有在注释中传递,我只是把代码放在最初的帖子里,我真的不明白为什么这个问题被标记为JavaScript。你的代码和你试图使用的库是Java的对不起,我没有看到你的答案。它可以工作,谢谢你的TiffTag.WINDOWS\u XP\u标题和TiffTag.WINDOWS\u XP\u主题