我一直在努力解决一个星期左右的问题。谷歌搜索无济于事。我目前正在开发一款iOS / Android应用程序,该应用程序在游戏中具有截屏功能,并将其显示在移动设备的图库中。
我正在使用CameraRoll对象,问题是屏幕上的某些对象已应用平滑。但是CameraRoll截图忽略了这一点。这使得最终的屏幕截图有一些带锯齿的物体。
谷歌搜索时,我发现了一些关于同一问题的呼救,但没有答案。
非常感谢任何帮助。
答案 0 :(得分:1)
闪存中的Jaggies很常见,因为默认情况下禁用位图上的平滑(更多cpu密集)。我建议从CameraRoll MediaEvent.SELECT事件创建一个新的位图。在里面,它应该返回event.data
MediaPromise object。在其中,您应该找到一个只读file
属性,您应该可以在其中找到图像。
然后,只需要通过平滑创建新图像。
var img:Bitmap = new Bitmap();
img.bitmapData = file.bitmapData;
img.smoothing = true;
addChild(img);
我之前从未在手机上试过这个,但我认为你遇到了it's a common issue。
<强>附录:强>
如果您遇到基于系统的屏幕截图服务的问题,您可以使用纯AS3创建自己的屏幕截图服务。逻辑是,AS3应该对舞台进行逐像素块复制(从而尊重图像的平滑值)。
试试这个:
var myBitmapData:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight);
myBitmapData.draw(stage);