android – 在Exif中编写XPKeywords

我想在Jpeg图像中编写XPKeywords.直到现在我正在使用Sansaleen java api在Jpeg图像中编写Exif标签.我能够写出大部分标签,如主题,评论,作者,评级,但我无法编写Windows XP关键字.我使用下面的代码

public static TiffOutputField getTiffOutputFieldKeyword(
        TiffOutputSet outputSet, String MetaDatatochange) {
    TiffOutputField imageHistoryPre = outputSet
            .findField(TiffConstants.EXIF_TAG_XPKEYWORDS);
    if (imageHistoryPre != null) {
        outputSet.removeField(TiffConstants.EXIF_TAG_XPKEYWORDS);
    }

    TiffOutputField tiffOutputField = new TiffOutputField(
            TiffConstants.EXIF_TAG_XPKEYWORDS,
            TiffFieldTypeConstants.FIELD_TYPE_BYTE,
            MetaDatatochange.length(), MetaDatatochange.getBytes("UTF-16"));

    return tiffOutputField;
}

我已经搜索了这个问题,并且知道XP_Keyword接受UCS2中的特殊编码,所以我更新了我的代码.但仍然无法编写完整的标签.标签是分号分隔的.

如果出现上述问题的任何解决方案,或者是否有其他可以在Jpeg文件中编写标签的java / android lib,请告诉我.

解决方法:

搞定了:

public static TiffOutputField getTiffOutputFieldKeyword(
    TiffOutputSet outputSet, String MetaDatatochange) {
TiffOutputField imageHistoryPre = outputSet
        .findField(TiffConstants.EXIF_TAG_XPKEYWORDS);
if (imageHistoryPre != null) {
    outputSet.removeField(TiffConstants.EXIF_TAG_XPKEYWORDS);
}

TiffOutputField tiffOutputField = new TiffOutputField(
        TiffConstants.EXIF_TAG_XPKEYWORDS,
        TiffFieldTypeConstants.FIELD_TYPE_BYTE,
        MetaDatatochange.getBytes("UTF-16").length, MetaDatatochange.getBytes("UTF-16"));

return tiffOutputField;
}

只需在“UTF-16”中使用字节长度然后写入.此外,请确保将字符修剪为不包含任何空格.另外,请尝试将字符串与Semicolon(;)分隔为认情况下Windows采用分号分隔关键字.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...