copy image from camera roll on IOS
Hi all!
I have a problem that I can't seem to solv. The user copys an image from the camera roll to the applicationStorageDirectory:
function browseTexturesClicked()
{
textureFile = new CameraRoll()
textureFile.browseForImage();
textureFile.addEventListener(MediaEvent.SELECT, onTextureSelected);
}
function onTextureSelected(evt:MediaEvent):void
{
loadPreset = false
var promise:MediaPromise = evt.data as MediaPromise;
textureFile.removeEventListener(MediaEvent.SELECT, onTextureSelected);
mobileTextureLoader = new Loader();
mobileTextureLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, textureLoaded);
mobileTextureLoader.loadFilePromise(promise);
}
function textureLoaded(evt:Event):void
{
var bitmapData:BitmapData = Bitmap(evt.currentTarget.content).bitmapData
var bitmap:Bitmap = new Bitmap(bitmapData);
var bitmapToSave:ByteArray = bitmap.bitmapData.getPixels(bitmap.bitmapData.rect);
var bitmapFileName:String = "temptextures/" + "texture" + (currSelectedTexture+1).toString() + ".jpg"
var bitmapFile:File = File.applicationStorageDirectory.resolvePath(bitmapFileName);
var bitmapFileStream:FileStream = new FileStream();
bitmapFileStream.open(bitmapFile, FileMode.WRITE);
bitmapFileStream.writeBytes(bitmapToSave, 0, bitmapToSave.length);
bitmapFileStream.close()
}
But when I try to load the image I get a 2124 error:
presetTexturePath = File.applicationStorageDirectory.resolvePath("presets");
var picLoader:Loader = new Loader();
picLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadPicture);
picLoader.load(new URLRequest(presetTexturePath.url));
function loadPicture(evt:Event):void
{
var bitmap:Bitmap = Bitmap(evt.target.content);
addChild(bitmap)
}
I'm guessing it has something to do with the saving part.
I would be so greatfull if anyone could give me some pointers!
Have a gret day!
------------------------
I have done some changes and now it works. I tought it might help someone.
var dataSource:IDataInput;
function onTextureSelected(evt:MediaEvent):void
{
var imagePromise:MediaPromise = evt.data;
dataSource = imagePromise.open();
var eventSource:IEventDispatcher = dataSource as IEventDispatcher;
eventSource.addEventListener( Event.COMPLETE, textureLoaded );
}
function textureLoaded(evt:Event):void
{
var imageBytes:ByteArray = new ByteArray();
dataSource.readBytes( imageBytes );
var bitmapFileName:String = "temptextures/" + "texture" + (currSelectedTexture+1).toString() + ".jpg"
var bitmapFile:File = File.applicationStorageDirectory.resolvePath(bitmapFileName);
var bitmapFileStream:FileStream = new FileStream();
bitmapFileStream.open(bitmapFile, FileMode.WRITE);
bitmapFileStream.writeBytes(imageBytes);
bitmapFileStream.close()
var picLoader:Loader = new Loader();
picLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadPicture);
picLoader.load(new URLRequest(bitmapFile.url));
function loadPicture(evt:Event):void
{
var bitmapData:BitmapData = Bitmap(evt.currentTarget.content).bitmapData
var bitmap:Bitmap = Bitmap(evt.target.content);
addChild(bitmap)
}
}
Message was edited by: ealanger-dsaevarferdgxgfx
