1
예를 들어 메타 데이터를 읽고 쓰는 간단한 예가 있습니까? 지역 .jpg? XMPCore ActionScript ReferenceXMPCore를 사용하여 actionscript를 통해 파일의 메타 데이터를 가져옵니다.
불행히도 어도비의 지시 사항을 적용 할 수 없었습니다.
간단한 예를 들어 보겠습니다. 감사합니다.
예를 들어 메타 데이터를 읽고 쓰는 간단한 예가 있습니까? 지역 .jpg? XMPCore ActionScript ReferenceXMPCore를 사용하여 actionscript를 통해 파일의 메타 데이터를 가져옵니다.
불행히도 어도비의 지시 사항을 적용 할 수 없었습니다.
간단한 예를 들어 보겠습니다. 감사합니다.
나는이 문제에 대한 작은 스 니펫을 작성했습니다. 이 스 니펫은 적절한 테스트를받지 못하고 명확하고 일관된 방식으로 작성되지 않은 가장 확실합니다. 하지만 지금은 효과가있는 것 같습니다. 내가 작업 할 때 갱신하겠습니다. http://snipplr.com/view/51037/xmp-metadata-from-jpg/
private function init(event:Event):void
{
var ldr:Loader = new Loader();
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded);
var s:String = "link/to/asset.jpg";
ldr.load(new URLRequest(s));
}
private function imgLoaded(e:Event):void{
var info:LoaderInfo = e.target as LoaderInfo;
var xmpXML:XML = getXMP(info.bytes);
//trace(xmpXML);
var meta:XMPMeta = new XMPMeta(xmpXML);
}
private function trim(s:String):String{
return s.replace(/^([\s|\t|\n]+)?(.*)([\s|\t|\n]+)?$/gm, "$2");
}
private function getXMP(ba:ByteArray):XML{
var LP:ByteArray = new ByteArray();
var PACKET:ByteArray = new ByteArray();
var l:int;
ba.readBytes(LP, 2, 2);
/*
http://www.adobe.com/devnet/xmp.html
read part 3: Storage in Files.
that will explain the -2 -29 and other things you see here.
*/
l = LP.readInt() - 2 -29;
ba.readBytes(PACKET, 33, l);
var p:String = trim(""+PACKET);
var i:int = p.search('<x:xmpmeta xmlns:x="adobe:ns:meta/"');
/* Delete all in front of the XMP XML */
p = p.substr(i);
/*
For some reason this left some rubbish in front, so I'll hardcode it out for now
TODO clean up
*/
var ar:Array = p.split('<');
var s:String = "";
var q:int;
var j:int = ar.length;
for(q=1;q<j;q++){
s += '<'+ar[q];
}
i = s.search('</x:xmpmeta>');
i += ('</x:xmpmeta>').length;
s = s.slice(0,i);
/* Delete all behind the XMP XML */
return XML(s);
}
에서