手机仅保存图像的左上角 - ActionScript3

时间:2014-09-04 10:53:12

标签: iphone actionscript-3 actionscript air adobe

我正在尝试将图像保存到手机的相机中使用动作脚本3保存。图像在平板电脑设备上保存得很好。但是,当我将图像保存到手机时,它只保存图像的左上角。

这是我的代码,

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;       
}

如何保存大于手机显示区域的图像? 任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

在这一行:

  var bmpData:BitmapData = new BitmapData(this.width,this.height, false, 0x000000);

检查这些变量的值:'this.width'和'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;      
  }

答案 1 :(得分:0)

正如另一张海报所说,问题在于以下几行:

var bmpData:BitmapData = new BitmapData(this.width,this.height, false, 0x000000);

this.widththis.height正在向您返回“' size'设备屏幕。您需要放置的代替这些项目的是您要从相机胶卷加载的图像的实际宽度和高度。