首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何填充windows exif标签

如何填充windows exif标签
EN

Stack Overflow用户
提问于 2017-03-17 03:26:15
回答 1查看 578关注 0票数 2

晚上好,我想填写jpg图片文件的窗口属性。

显然,这些是exiftag

代码语言:javascript
复制
[Exif IFD0] Windows XP Title
[Exif IFD0] Windows XP Author
[Exif IFD0] Windows XP Subject

我查看了icafe.jar的一侧,但没有找到这些标记。我可以使用icafe或其他jar库吗?

代码语言:javascript
复制
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();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-04 02:00:45

这些标签确实存在于ICAFE中,但它们不是Exiftag。他们是TiffTag。将ExifTag替换为TiffTag,它将正常工作。看看TestMetada.java,它清楚地表明了这一点。

代码语言:javascript
复制
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();
 }
}

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42843164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档