2

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

显然这些是exiftags

[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();
4

1 回答 1

1

这些标签确实存在于 ICAFE 中,但它们不是 Exiftag。它们是 TiffTag。将 ExifTag 替换为 TiffTag,它将起作用。查看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();
 }
}

以下是我右键单击生成的图像->显示属性时的屏幕截图。您可以看到要插入的信息正在显示。

在此处输入图像描述

于 2017-04-03T18:00:45.190 回答