Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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
Image 更改图像大小并将图像导出为3_Image_Actionscript 3_Flash - Fatal编程技术网

Image 更改图像大小并将图像导出为3

Image 更改图像大小并将图像导出为3,image,actionscript-3,flash,Image,Actionscript 3,Flash,在Flash中,我有一个外部图像,我使用精灵加载该图像,供用户编辑图像 var bitmapData:BitmapData = Bitmap(event.currentTarget.content).bitmapData; var bitmap:Bitmap = new Bitmap(bitmapData); bitmap.smoothing = true; bitmap.width=500 bitmap.height=300 photoHolder = new Sprite() photoH

在Flash中,我有一个外部图像,我使用精灵加载该图像,供用户编辑图像

var bitmapData:BitmapData = Bitmap(event.currentTarget.content).bitmapData;
var bitmap:Bitmap = new Bitmap(bitmapData);

bitmap.smoothing = true;
bitmap.width=500
bitmap.height=300
photoHolder = new Sprite()
photoHolder.addChild(bitmap);
编辑后,我想保存相同的图像,但宽度和高度不同,例如800x480。在保存图像时,我做到了这一点

**var myBitmapData:BitmapData = new BitmapData(photoHolder.width, photoHolder.height);**//photoHolder.width, photoHolder.height
myBitmapData.draw(photoHolder);
然后稍后使用FileStream保存它

private function F_saveImageActions():void{
        //get Bimapdata from file
        var myBitmapData:BitmapData = selectedFile.photo_bitmapData
        //encode, turn into byeArray
        var jpgEncoder:JPGEncoder = new JPGEncoder(100);
        var imgByteData:ByteArray = jpgEncoder.encode(myBitmapData);
        //
        var folder:File = File.documentsDirectory.resolvePath("Myproject/myImage.jpg");

        imageFileStream = new FileStream();  
        imageFileStream.addEventListener(Event.CLOSE, FS_imageFileClosed);
        imageFileStream.addEventListener(Event.COMPLETE, FS_imageCompleteHandler); 
        imageFileStream.addEventListener(ProgressEvent.PROGRESS, FS_imageProgressHandler); 
        imageFileStream.addEventListener(IOErrorEvent.IO_ERROR, FS_imageErrorHandler); 
        imageFileStream.openAsync(folder, FileMode.UPDATE);  
        imageFileStream.writeBytes(imgByteData);
} 我试图通过编辑上面的粗体线来改变大小。。 var myBitmapData:BitmapData=新的BitmapData(800480)

但它不起作用。结果与我预期的不同,质量也受到了影响。。准确地说,这是我的问题


如何更改舞台上精灵图像的大小并导出它而不丢失其质量?(AS3)

好的,我找到了

var matrix:Matrix = new Matrix();
matrix.scale(scaleX_var, scaleY_var);

并将其传入
drawWithQuality()参数。

首先从某处加载500x300位图,然后通过叠加或更改像素对其进行编辑,然后在不调整比例的情况下将其制作成800x480的位图,我说的对吗?放大位图总会以某种方式对其进行像素化。“我如何改变舞台上精灵图像的大小并导出它而不丢失其质量?(AS3)“真的。。。。你不能,没有现成的程序或代码可以在放大位图时在正确的位置添加丢失的像素。如果缩小比例或保持相同大小,则只需使用矩阵将其绘制到位图数据。我的第一个问题是将图像大小调整为800x480。输出的大小是800x480,但图像本身的分辨率仍然是500x300。。图像的其余部分是白色的。现在让我们忽略质量,让我们集中精力调整图像的大小。你仍然对答案感兴趣吗?是的,我仍然感兴趣