如何填写windows exif标签

时间:2017-03-16 19:26:15

标签: java exif icafe

晚上好 我想填写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();

1 个答案:

答案 0 :(得分:1)

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

val df = List(
  ("mike", 26, true),
  ("susan", 26, false),
  ("john", 33, true)
).toDF("name", "age", "isBoy")

val df2 = List(
  ("mike", "grade1", 45, "baseball", new java.sql.Date(format.parse("1957-12-10").getTime)),
  ("john", "grade2", 33, "soccer", new java.sql.Date(format.parse("1978-06-07").getTime)),
  ("john", "grade2", 32, "golf", new java.sql.Date(format.parse("1978-06-07").getTime)),
  ("mike", "grade2", 26, "basketball", new java.sql.Date(format.parse("1978-06-07").getTime)),
  ("lena", "grade2", 23, "baseball", new java.sql.Date(format.parse("1978-06-07").getTime))
).toDF("name", "grade", "howold", "hobby", "birthday").withColumn("birthday", $"birthday".cast(DateType))

以下是右键单击生成的image-&gt; show属性的屏幕截图。您可以看到要插入的信息正在显示。

enter image description here