Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.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加载>;联合收割机>;并保存外部图像_Actionscript_Bitmap_Save_Encoder - Fatal编程技术网

Actionscript 3加载>;联合收割机>;并保存外部图像

Actionscript 3加载>;联合收割机>;并保存外部图像,actionscript,bitmap,save,encoder,Actionscript,Bitmap,Save,Encoder,我是ActionScript3的新手,因此提前感谢您提供的任何帮助。基本上,我要做的是加载2个或多个外部图像,大小和分辨率都相同,然后一个接一个地组合或合成它们,然后使用jpeg或png编码器将结果保存为新图像 我不想拍舞台的快照,我想用原始分辨率保存图像。到目前为止,我唯一能做的就是加载两张图片,并在舞台上合成它们。就这样 有人能告诉我如何做到这一点吗。我使用的是flash pro CS5.5,在类文件中编写代码,而不是在时间轴上。这是代码的副本 package package { 导

我是ActionScript3的新手,因此提前感谢您提供的任何帮助。基本上,我要做的是加载2个或多个外部图像,大小和分辨率都相同,然后一个接一个地组合或合成它们,然后使用jpeg或png编码器将结果保存为新图像

我不想拍舞台的快照,我想用原始分辨率保存图像。到目前为止,我唯一能做的就是加载两张图片,并在舞台上合成它们。就这样

有人能告诉我如何做到这一点吗。我使用的是flash pro CS5.5,在类文件中编写代码,而不是在时间轴上。这是代码的副本

package 
package 
{

导入flash.display.MovieClip;
导入flash.display.Loader;
导入flash.net.URLRequest;
导入flash.events.*;
导入flash.display.Bitmap;
导入flash.display.BitmapData;
导入flash.utils.ByteArray;
公共类imageComposite扩展了MovieClip
{
var-images:Array=[“koala.png”,“koala2.png”];//两个图像
公共函数imageComposite()
{
//构造代码
var-thumbLoader:Loader;
对于(变量i:uint=0;i

}

首先将两个
加载程序
对象放入一个单独的“holder”对象中


然后,您可以将此
byteArray
对象写入服务器或磁盘(桌面空中应用程序)。

非常感谢您花时间提供您的知识,它非常有用。你给我的代码运行良好,只有一个例外。必须在函数外部声明“holder”变量。我得到了一点访问错误,但当我把它放在函数之外时,它工作得很好

无论如何,我已经扩展了代码,添加了保存的功能。我刚刚在舞台上放了一个名为“saveButt_mc”的电影剪辑。然后添加了使用fileReference保存的功能。我的目标是使用php将其自动保存到服务器上,但现在必须这样做

这是我的最终代码,再次感谢您的帮助

-D

{

导入flash.display.MovieClip;
导入flash.display.Loader;
导入flash.net.URLRequest;
导入flash.events.*;
导入flash.display.Bitmap;
导入flash.display.BitmapData;
导入flash.utils.ByteArray;
导入flash.display.Sprite;
导入flash.net.FileReference;
导入flash.net.FileFilter;
导入com.adobe.images.PNGEncoder;
公共类imageComposite扩展了MovieClip
{
var-images:Array=[“koala.png”,“koala2.png”];//两个图像
变量保持器:Sprite=新Sprite();
公共函数imageComposite()
{
//构造代码
儿童(持有人);
var-thumbLoader:Loader;
对于(变量i:uint=0;i
}

// constructor code
var holder:Sprite = new Sprite();
addChild(holder);

var thumbLoader:Loader;

for (var i:uint = 0; i < images.length; i++)
{

    thumbLoader = new Loader;
    thumbLoader.load(new URLRequest(("assets/" + images[i])));
    holder.addChild(thumbLoader);
}
...
var bitmapData:BitmapData = new BitmapData(holder.width, holder.height, false);
bitmapData.draw(holder);

var byteArray:ByteArray = PNGEncoder.encode(bitmapData);
package 
import flash.display.MovieClip;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.*;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.utils.ByteArray;
import flash.display.Sprite;
import flash.net.FileReference;
import flash.net.FileFilter;

import com.adobe.images.PNGEncoder;


public class imageComposite extends MovieClip
{

    var images:Array = ["koala.png","koala2.png"];//two images
    var holder:Sprite = new Sprite();

    public function imageComposite()
    {
        // constructor code
        addChild(holder);
        var thumbLoader:Loader;

        for (var i:uint = 0; i < images.length; i++)
        {

            thumbLoader = new Loader  ;
            thumbLoader.load(new URLRequest(("assets/" + images[i])));
            holder.addChild(thumbLoader);

        }
        //thumbLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, bmpData);

        saveButt_mc.addEventListener(MouseEvent.CLICK, bmpData);
        addChild(saveButt_mc);
        saveButt_mc.buttonMode = true;
    }
    //need contentLoaderInfo to access loader data;

    public function bmpData(evt:Event):void
    {
        var bitmapData:BitmapData = new BitmapData(holder.width,holder.height,false);
        bitmapData.draw(holder);
        var byteArray:ByteArray = PNGEncoder.encode(bitmapData);

        var file:FileReference = new FileReference();
        file.save(byteArray, "newImage.jpg");

        trace("Event was completed successfully!");
    }

}