我使用flash进行ios开发,并使用starling框架。 我试图截取屏幕截图,然后将其保存到相机胶卷,但cameraRoll只接受位图数据。我如何将精灵转换为位图数据?太感谢了!!iOS开发Starling框架:截取屏幕截图并保存到相机胶卷
0
A
回答
0
您可以使用BitmapData.draw()方法将Sprite
转换为BitmapData
。 Here就是一个例子。
0
Try to get an byte array for this use can use Encoder like JPGEncoder or PNGEncoder from byte array you can easily convert to bitmapData.
And the code which i used for converting byte array to bitmapData is here. I hope it would be helpfull for you.If you send any byteArray by calling this class it would convert you bitmapData and return back using callBack Function.
package browsingImages
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.events.Event;
import flash.utils.ByteArray;
import scenes.Subscenes.KeepDiary;
public class BitmapDataConverter
{
// private var _KeepDiary:KeepDiary;
private var bmpData:BitmapData;
private var _loader:Loader;
private var _callB:Function;
public function BitmapDataConverter(byteArr:ByteArray,callB:Function)
{
_callB=callB;
getBitmapFunc(byteArr);
}
private function getBitmapFunc(bytArr:ByteArray):void{
if(bytArr != null){
bmpData = new BitmapData(100, 100, true,0xFFFFFF);
_loader = new Loader();
_loader.loadBytes(bytArr);
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderAdded);
}
}
private function onLoaderAdded(eve:Event):void{
_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onLoaderAdded);
bmpData.draw(_loader);
bmpData = Bitmap(_loader.content).bitmapData;
if(_callB != null)
_callB(bmpData);
}
}
}
0
其实,你不能使用绘制椋鸟的雪碧。 此代码适用于我:
public static function copyAsBitmapData(displayObject:DisplayObject, transparentBackground:Boolean = true, backgroundColor:uint = 0xcccccc):BitmapData
{
if (displayObject == null || isNaN(displayObject.width)|| isNaN(displayObject.height))
return null;
var resultRect:Rectangle = new Rectangle();
displayObject.getBounds(displayObject, resultRect);
var result:BitmapData = new BitmapData(displayObject.width, displayObject.height, transparentBackground, backgroundColor);
var context:Context3D = Starling.context;
var support:RenderSupport = new RenderSupport();
RenderSupport.clear();
support.setOrthographicProjection(0, 0, Starling.current.stage.stageWidth, Starling.current.stage.stageHeight);
support.applyBlendMode(true);
support.translateMatrix(-resultRect.x, -resultRect.y);
support.pushMatrix();
support.blendMode = displayObject.blendMode;
displayObject.render(support, 1.0);
support.popMatrix();
support.finishQuadBatch();
context.drawToBitmapData(result);
return result;
}
相关问题
- 1. 将某些视图的屏幕截图获取到相机胶卷iOS
- 2. 电子邮件截图,不保存到相机胶卷
- 3. 如何采取屏幕截图和截屏保存在相册
- 4. 采取屏幕截图比发布到Twitter,而不保存。 iOS
- 5. iOS将CIImage保存到相机胶卷
- 6. iOS开发 - 共享屏幕截图
- 7. Python打开html文件,截取屏幕截图,裁剪并保存为图像
- 8. C++截取屏幕截图
- 9. 截取屏幕截图
- 10. 在UIView中截取选定框架的屏幕截图
- 11. behat/mink打开窗口并截取它的屏幕截图
- 12. SpriteKit屏幕截图的屏幕截图
- 13. 如何避免将从相机胶卷拾取的图像保存到相机胶卷? [iOS]
- 14. Android相机预览屏幕截图
- 15. iOS屏幕截图延迟
- 16. iOS - 屏幕截图/ watermak
- 17. ios tableview +屏幕截图
- 18. iOS中的屏幕截图
- 19. React Native将图像保存到iOS相机胶卷
- 20. 在java中截取屏幕截图并将其保存在桌面上
- 21. iOS采取多个屏幕截图
- 22. 将场景保存到相机胶卷
- 23. 如何比较pscreenshot中截取的屏幕截图和保存的屏幕截图?
- 24. 保存小部件的屏幕截图
- 25. 保存多个屏幕截图
- 26. 保存watir中的屏幕截图
- 27. 硒测试保存屏幕截图
- 28. webdriverio - 截取整页的屏幕截图
- 29. Phantomjs - 截取网页的屏幕截图
- 30. 在Rails中截取屏幕截图