如何将元数据信息注入图像文件上传?

时间:2014-06-20 10:18:23

标签: coldfusion

亲爱的ColdFusion坏人,

我想知道当我通过CF上传图片时是否有办法添加元数据信息!

e.g。你可以通过PhotoShop http://www.artsnova.com/x/Chicago-Artists-Coalition-email-metadata.jpg“Photoshop MetaData”

来完成

我想我可以将图片转换为Base64,在那里注入我的信息,然后写回文件:

<cfimage action="write" source="#ImageReadBase64(form.myBase64Image)#" destination="#filePath##fileName#">

我注意到JPG文件中有以下标签:

<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        ">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:aux="http://ns.adobe.com/exif/1.0/aux/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpRights="http://ns.adobe.com/xap/1.0/rights/" xmp:Rating="0" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)" xmp:ModifyDate="2014-06-20T11:59:38+02:00" xmp:CreateDate="2014-06-03T07:52:21" xmp:MetadataDate="2014-06-20T11:59:38+02:00" aux:SerialNumber="193020002656" aux:LensInfo="28/1 300/1 0/0 0/0" aux:Lens="28-300mm" aux:LensID="6" aux:LensSerialNumber="0000000000" aux:ImageNumber="0" aux:FlashCompensation="0/1" aux:Firmware="1.2.3" photoshop:DateCreated="2014-06-03T07:52:21.001" photoshop:LegacyIPTCDigest="3AB878C7DE3E2C7D46FA1D558A375445" photoshop:ColorMode="3" photoshop:ICCProfile="sRGB v1.31 (Canon)" xmpMM:DocumentID="F5AE03309FA9337F43EA71C52F6B6C0D" xmpMM:InstanceID="xmp.iid:4E811E5E61F8E31183E6DB5EA6C6987D" xmpMM:OriginalDocumentID="F5AE03309FA9337F43EA71C52F6B6C0D" dc:format="image/jpeg" xmpRights:WebStatement="http://www.mywebsite.com">
<xmpMM:History>
<rdf:Seq>
<rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:274f1a37-ad8a-40d8-b5d2-03cea0cf8c52" stEvt:when="2014-06-04T16:44:12+01:00" stEvt:softwareAgent="Adobe Photoshop CC (Macintosh)" stEvt:changed="/"/>
<rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:4E811E5E61F8E31183E6DB5EA6C6987D" stEvt:when="2014-06-20T11:59:38+02:00" stEvt:softwareAgent="Adobe Photoshop CS6 (Windows)" stEvt:changed="/"/>
</rdf:Seq>
</xmpMM:History>
<dc:rights>
<rdf:Alt>
<rdf:li xml:lang="x-default">This Picture is a Property of My Company</rdf:li>
</rdf:Alt>
</dc:rights>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>

但如果我手动添加或更改这些信息,则JPG已损坏! 任何想法或方法将不胜感激! 此致

2 个答案:

答案 0 :(得分:1)

使用ColdFusion编辑图像元数据没有普通方法。您应该使用某些第三方工具(使用cfexecute标记)或java库来执行此任务。看看这些答案:

答案 1 :(得分:0)

有一个函数ImageGetMetadata()可以获取元数据,但查看文档我看不到一个setter。

这个答案讨论了一些可以帮助你的自定义标签。 https://stackoverflow.com/a/2863843/1218040