我想在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采用分号分隔关键字.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。