1

我一直在尝试解决一个问题一周左右。谷歌搜索无济于事。我目前正在开发一个 iOS/Android 应用程序,该应用程序在游戏中具有截取屏幕截图并将其显示在移动设备图库中的功能。

我正在使用 CameraRoll 对象,问题是屏幕上的某些对象应用了平滑处理。然而,CameraRoll 屏幕截图忽略了这一点。这使得生成的屏幕截图有一些带有锯齿的对象。

我在谷歌搜索时发现了许多在同一问题上寻求帮助的呼声,但没有答案。

任何帮助深表感谢。

4

1 回答 1

1

Flash 中的锯齿很常见,因为默认情况下禁用位图上的平滑(更多 cpu 密集型)。我建议从 CameraRoll MediaEvent.SELECT事件创建一个新位图。在内部,它应该返回event.data一个MediaPromise 对象。在其中,您应该找到一个只读file属性,您应该能够在其中找到图像。

然后,只需使用平滑创建新图像即可。

var img:Bitmap = new Bitmap();
img.bitmapData = file.bitmapData;
img.smoothing = true;
addChild(img);

我以前从未在移动设备上尝试过此操作,但这是我相信您遇到的常见问题。


附录:

如果您在使用基于系统的屏幕截图服务时遇到问题,您可以使用纯 AS3 创建自己的屏幕截图服务。逻辑是,AS3 应该对舞台进行逐像素块复制(从而尊重图像的平滑值)。

尝试这个:

var myBitmapData:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight);
myBitmapData.draw(stage);
于 2013-03-26T19:20:51.120 回答