Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 使用XMPCore通过actionscript获取文件元数据_Actionscript 3_Air_Metadata_Xmp_Metatag - Fatal编程技术网

Actionscript 3 使用XMPCore通过actionscript获取文件元数据

Actionscript 3 使用XMPCore通过actionscript获取文件元数据,actionscript-3,air,metadata,xmp,metatag,Actionscript 3,Air,Metadata,Xmp,Metatag,是否有一个简单的示例来读取/写入例如local.jpg的元数据? 不幸的是,我无法应用adobe的说明 一个简单的例子将帮助我很多! 谢谢关于这件事我写了一个小片段。这段代码远远没有经过适当的测试,而且最明显的是没有以清晰连贯的方式编写。但就目前而言,这似乎奏效了。我会在工作时更新它 从 私有函数init(事件:event):void { var ldr:Loader=new Loader(); ldr.contentLoaderInfo.addEventListener(Event.COMP

是否有一个简单的示例来读取/写入例如local.jpg的元数据?

不幸的是,我无法应用adobe的说明

一个简单的例子将帮助我很多!
谢谢

关于这件事我写了一个小片段。这段代码远远没有经过适当的测试,而且最明显的是没有以清晰连贯的方式编写。但就目前而言,这似乎奏效了。我会在工作时更新它

私有函数init(事件:event):void
{
var ldr:Loader=new Loader();
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,imgLoaded);
var s:String=“link/to/asset.jpg”;
加载(新的URL请求);
}
私有函数imgLoaded(e:事件):无效{
变量信息:LoaderInfo=e.target作为LoaderInfo;
var xmpXML:XML=getXMP(info.bytes);
//微量元素(xmpXML);
var meta:XMPMeta=新的XMPMeta(xmpXML);
}
私有函数修剪(s:String):String{
返回s.replace(/^([\s\t\n]+)?(.*)([\s\t\n]+)?$/gm,“$2”);
}
私有函数getXMP(ba:ByteArray):XML{
var LP:ByteArray=new ByteArray();
var数据包:ByteArray=newbytearray();
变量l:int;
ba.readBytes(LP,2,2);
/* 
http://www.adobe.com/devnet/xmp.html
阅读第3部分:文件中的存储。
这将解释-2-29和其他你在这里看到的东西。
*/
l=LP.readInt()-2-29;
ba.readBytes(包,33,l);
变量p:String=trim(“+”数据包);

var i:int=p.search(“我已经写了一个关于这个问题的小片段。这个片段远没有经过适当的测试,而且最明确的是没有以清晰连贯的方式编写。但是现在它似乎起作用了。我将在处理它的过程中进行更新

私有函数init(事件:event):void
{
var ldr:Loader=new Loader();
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,imgLoaded);
var s:String=“link/to/asset.jpg”;
加载(新的URL请求);
}
私有函数imgLoaded(e:事件):无效{
变量信息:LoaderInfo=e.target作为LoaderInfo;
var xmpXML:XML=getXMP(info.bytes);
//微量元素(xmpXML);
var meta:XMPMeta=新的XMPMeta(xmpXML);
}
私有函数修剪(s:String):String{
返回s.replace(/^([\s\t\n]+)?(.*)([\s\t\n]+)?$/gm,“$2”);
}
私有函数getXMP(ba:ByteArray):XML{
var LP:ByteArray=new ByteArray();
var数据包:ByteArray=newbytearray();
变量l:int;
ba.readBytes(LP,2,2);
/* 
http://www.adobe.com/devnet/xmp.html
阅读第3部分:文件中的存储。
这将解释-2-29和其他你在这里看到的东西。
*/
l=LP.readInt()-2-29;
ba.readBytes(包,33,l);
变量p:String=trim(“+”数据包);
变量i:int=p.search('
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);
}