Phone只保存图像的左上角-ActionScript3



我正试图使用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.widththis.height将返回设备屏幕的"大小"。您需要放置的是要从相机胶卷加载的图像的实际宽度和高度。

最新更新