我正试图使用Action Script 3将图像保存到手机的相机Roll中。该图像在平板电脑设备上保存良好。但是,当我将图像保存到手机时,它只保存图像的左上角。
这是我的代码,
var media:DisplayItem;
public function SaveAsBitmap():void
{
var cameraRoll:CameraRoll = new CameraRoll();
cameraRoll.addBitmapData(this.GetAsBitmapData());
}
public function GetAsBitmapData():BitmapData
{
var bmpData:BitmapData = new BitmapData(this.width,this.height, false, 0x000000);
this.media.DrawToBitmap(bmpData);
return bmpData;
}
如何保存大于手机显示区域的图像?感谢您的帮助。
在行中:
var bmpData:BitmapData = new BitmapData(this.width,this.height, false, 0x000000);
检查这些变量的值:"this.width"one_answers"this.height",可能不是您想要的正确尺寸。
要检查用户屏幕分辨率,您可以尝试:
// remember to import
import flash.system.Capabilities;
trace('Capabilities.screenResolutionX: ', Capabilities.screenResolutionX);
trace('Capabilities.screenResolutionY: ', Capabilities.screenResolutionY);
我还在你的代码上看到了一些东西,我看不到所有的范围,但试着做点什么:
public function GetAsBitmapData():BitmapData
{
// you can replace this.width and this.height to Capabilities.screenResolutionX/Capabilities.screenResolutionY
var bmpData:BitmapData = new BitmapData(this.width,this.height, false, 0x000000);
bmpData.draw(this.media); // be sure that this.media is IBitmapDrawable
return bmpData;
}
正如另一位海报所说,问题出现在以下行:
var bmpData:BitmapData = new BitmapData(this.width,this.height, false, 0x000000);
this.width
和this.height
将返回设备屏幕的"大小"。您需要放置的是要从相机胶卷加载的图像的实际宽度和高度。