Flash :: Loading Image By Loader.loadBytes(byteArray)?
Nov 13, 2011
i like to ask about one thing If i create Loader and load external image by URLRequest , ill have result :
loader.content is Bitmap loader.content.bitmapData is BitmapData But if I use Loader.loadBytes(ImageBytes) , result is different even if ImageBytes is loader.contentLoaderInfo.bytes :
bytesLoader.content is MovieClip
bytesLoader.content.getChildAt(0) is BitmapData
bytesLoader.content.getChildAt(0).bitmapData is BitmapData
The purpose of this is too allow a user to upload an image from their machine to be displayed on a website. The code's pretty straight forward and i have it all working fine, but have come across an issue. When certain portrait images are selected to be loaded and displayed, they get rotated at some point in the process and become landscape? There doesn't appear to be any consistency to the way they are rotated. Some are clockwise, some counter clockwise.
The one thing i've noticed though, is that it doesn't appear to be an issue with images that have been re-saved (so simply taken into photoshop and then saved without any modification), only images that are the original source of an image taken by a digital camera? This has got me wondering whether there's a possible issue with flash reading the meta data of the source image? The attached zip file contains the source code and swf, a selection of images from 2 different camera's and a modified image.
Just to note, due to the dimensions of the images, in the source code the bitmap is scaled to 0.1 so that the result can be clearly seen. I've tested this without the scaling and the image still gets rotated. There's a trace in the Event.COMPLETE handler of the Loader.loadbytes() method and you can see from this that the width and height of the loaded image have been switched? Note - due to the size of the zip file (4.6MB) because of the images, i've put them up on my server for download instead.[URL]
I got this very strange behavior from FlashPlayer debugger 10.1 r82. When I call loader.load method, no ADDED event is dispatched to the loader object. But if I open the file and call loader.loadBytes instead, an ADDED event is dispatched to the loader object. I suspect the ADDED event is dispatched because the content is being set as the child of Loader object, but why in the other case it is not dispatched?
I am currently working on a project that will load a swc, inspect it and allow the user to view the classes inside.I load the library.swf using Loader.loadBytes (the bytes come from the unzip library I use). I create an instance of the class using getDefinitionByName.This all works fine as long as getDefinitionByName is called on the next frame. If I call it straight away I get a reference error. To get round this I've come up with a rather hacky solution:
I really don't like using the enter frame event on the top level application. I also don't want to have to set up a timer. That's just as nasty.Loader.loadBytes doesn't fire a complete event so I don't know where I listen for an event for when the bytes have been fully loaded into the ApplicationDomain.
im working on an image viewer and im loading an image to a loader and then add the loader to the stage.I want the user to be able to drag and drop the image but since it's a loader i dont know how to do it. I tried
[code]This script is for a loader image gallery in flash, as part of a class assignment. What happens is that in flash, when I open the swf file, the initial image (images/nair_evanescentautumn.png) will load fine. However, clicking on any thumbnail image (including the exact same images/nair_evanescentautumn.png), will result in an error saying the file cannot be found.I cannot figure out why it is doing this... I've tested it over. Clicking each thumbnail does go to the correct position in the two separate functions. All said full-size image links are in the folder images/, and replacing the initial loader image will load the other images in place of the default one. However, clicking on any thumbnail still results in URL not found, even though everything works correctly.[code]Before anyone asks why I'm putting this kind of content into a flash site, I'm not--this is only for a class assignment. I'm just trying to figure out why my images aren't loading right when I'm only doing the exact same thing in the functions as I am on the other pages.Of note, commissions.swf has the exact same feature, just with swf files loaded instead, and it works perfectly fine. home, traditional, digital, and photography all have the image gallery, and all have the same issue (I only referenced one page because if I can fix one page I should be able to fix all of them).As for the artworks, they are all my fiance's. The website design was built for her, and I used the website design for this project because I didn't want to have to build an entirely new interface design. Since the project also required a gallery, I felt that this interface would work just fine.
I want to load an image from a ByteArray and then set the dimension of the image. I'm doing it in the following way.
var img:Image = new Image() img.load(byteArray); img.width = 200; img.height = 200;
The problem is that if my original image is for example 90x100, I would get displayed an image of 180x200. It seems it cannot modify the proportion of the image! How can I instead obtain a 200x200 image?
I am developing a Image uploader using Flash 10. I am using Filereference object to browse images and Loader to show the image:
Sample code:
var tempFileRef:FileReference = FileReference(ev.target); var oLoader:Loader = new Loader(); oLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoad); oLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError); oLoader.loadBytes(tempFileRef.data);
It works fine with .jpg and .gif files but when I browse .bmp or .tiff file, I am getting the error:
Error #2124: Loaded file is an unknown type.
Is there a way to load and display browsed .bmp images from desktop?
I'm trying to load PNG images with ActionScript with a Loader object. This works fine for some of the images (the INIT and COMPLETE events are fired as expected), for some other it doesn't. I've read in this thread that a URLLoader might help, so I tried that, using the loadBytes() function afterwards. Still doesn't work: the URLLoader fires the COMPLETE event, but the LoaderInfo object does not.I've written a sample class that demonstrates the problem with two files (one working, the other one not).
public class LoaderTest extends MovieClip { var output:TextField; var loader:Loader;[code].....
All images were generated with the PHP GD library and I'm compiling with SWFTools's as3compile.The two images map_in_big.png and map_us_big.png are in the same folder (not allowed to post more hyperlinks).
I've tried adding this loader as a child of several different sprites but it only ends up in one of the sprites (must be removing from the other sprites display list automatically).How can I duplicate that image in the loader into multiple sprites?e.g. (note don't worry about making sure the icon is loaded, pretend I wanted to Event.COMPLETE before adding to
var icon:Loader = new Loader(); icon.load(new URLRequest('image.png')); var iconA:Sprite = new Sprite();
I'm trying to load images using the loader class but it doesn't seem to ever trigger the complete event (in this case anyway). The images are only 16x16px images from the local machine, so it should take no time at all to load. I use the totalImages variable as a counter; as an image is loaded, it subtracts 1 from it. Once it is 0, all images are loaded. I can create an instance and it goes as far as tracing "Begin loading images", but that's it. No errors in the console either.
i am loading all thumbs and images in a container on a single frame using action script..but the size of the swf becomes 1.2 mb so i want to add a loader to it...the loader i am trying to add counts the frames but my file has just one frame so the loader doesnot show up..
here is the script of my gallery..and the timeline has just one frame...
I'm having some problems creating a Loader from a ByteArray. The first time I open my application I save in a cache the bytes loaded in the loader.contentLoaderInfo. The second time I open the application I'm loading from the cache the bytes saved previously and creating the loader like this: loader.loadBytes(bytes); But, It seems it has a problem recreating the loader. All the bytes are loaded but when I want to access the content I don't have it.
I'm trying to clone / duplicate an object loaded in at runtime via the
-- ldr = new Loader(); var mRequest:URLRequest = new URLRequest(targetFile); --
technique. The problem I think I'm having, is in understanding what exactly the loader returns and how it can be used. after loading an image and tracing the result after the loader completes like this ...
trace(ldr.content); // - traces [object Bitmap]
I have a fuction I built that returns an arrar of clones / duplicates of a passed bitmap ...
I'm trying to get smoother steps in checking the ProgressEvent when loading the image to the Loader.At this moment my eventrogressEvent checks the progress aprox twice within a second. Is there any way to make it check constantly (or more often), so the progres bar "grows" smoothly instead of "jumping"?
I am using pixel bender's pbj files(as recommended with Flex4) to change the brightness/contrast of a image.So i apply the filters to the image like this:
image.filters = myBitmapFilter;
Now my problem is how to fetch the byteArray of the image with filter applied so that i can send bytearray to my servlet which can save the image with applied effects.
I've got a code, which caches loaded resources (both images and swfs) and saves its bytes to flash SharedObject:
var cache:SharedObject = SharedObject.getLocal('dataCache'); cache.data[url] = (loader.contentLoaderInfo as LoaderInfo).bytes;
When there's a query to load new resource, the code checks if the resource is in cache and then loads its bytes:
var loader:FlexLoader = new FlexLoader(); // handlers skipped var lc:LoaderContext = new LoaderContext(); lc.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
I want to have an AS3 app load images from url supplied by the user. But I don't want a malicious user to be able to load an SWF file in place of the image, such as with an altered extension "maliciousSwf.png". Well, not sure how big a security threat that is above and beyond the ability of the hacker to decompile swf, but I think that ideally such behavior should not be allowed.
So, is there any way to prevent this? When people allow users to load images in their Flash apps, do they somehow guard against loading of SWF? Or is this really absolutely no big deal?
How would I make an image I load using AS3's loader class into a button with an event handler on it? Below is what I have started. And below that is my error I get when I click the message.
AS:
//call function that starts loading my image callButtons(); function callButtons():void {
[code]....
the error I am getting when I click the spanish.png on the stage is: ArgumentError: Error #1063: Argument count mismatch on MyVideoPlayer_CS4_fla::MainTimeline/playSpanish(). Expected 0, got 1.I NEEDED TO ADDED evt:MouseEvent
I am attempting to load multiple images in AS3 and I'm exploring different options on how this can be done.I would like to have to only use one Load() instance and handle the various image assignments in the onComplete handler...here is my first attempt:
var buttonLdr:Loader = new Loader(); buttonLdr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onLoadError); buttonLdr.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadCo
Sorry for the complicated topic. I got a .swf that loads in other .swfs. Rather than figuring out how to make a loader for loading .swfs I thought I'd just use a simple loader in the .swf I'm loading.
However, it doesn't work. It starts fully loaded but doesn't finish. Heres the AS:[AS]_root.stop(); PercentLoaded = _root.getBytesLoaded()/_root.getBytesTotal()*100;
We have requirement with the AIR application which loads the flex generated swf which inturn loads the flash generated swf using SWFLoader. This is not working as desired.This gives the following error: SecurityError: Error #3226: Cannot import a SWF file when LoaderContext.allowCodeImport is false.
I'm using the following code to load an swf in a pure actionscript project (Flex Builder 3)
_loader = new Loader(); _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, Loader_Complete); _loader.contentLoaderInfo.addEventListener(Event.INIT, Loader_Init); var request:URLRequest = new URLRequest("Skins/TestSkin.swf"); _loader.load(request);
[Code]..
I have seen examples online where people say these work for them but whenever I set width or height in any of these ways, the loaded swf is simply not displayed at all.
I am wondering if it is possible to get a url to some image on google, say a square (jpg/png/gif), and process it into an SVG. Is this possible?
Right now I'm getting ByteArray data in Actionscript by making a URLRequest('image/on/google'), with dataFormat="binary". I don't think Actionscript could handle/do it, but maybe it could. I'm also good with Ruby, so perhaps is this possible with Ruby?
If so, any sample code/libraries to get started?
I guess another way to ask it is, how do I convert a Bitmap to a set of Vector Paths like Adobe Illustrator does?
I am wondering if there is any way to determine the width and height of an image that is decoded to a ByteArray.For example in the below, any way to determine these values for data?
var data:ByteArray = new ByteArray(); data = encoded_image.decode(byteArrayData);
I have problems with the load of an image from a ByteArray, I can't get the image size, witch I need to position the image. Strange thing is that the image is showed to me correctly.
My code is something like this:
ActionScript Code: var data:ByteArray; //Here are saved the raw image data (JPG, PNG, etc) ... var img:Loader = new Loader(); img.loadBytes(data);
I have been searching in forums and I couldn't find an answer so I thought maybe I should ask.
I wrote a script that allows user to select a local file, which gets resized if it exceeds the width/height limits I specified, and finally this file gets uploaded to the server.
In documentation it writes the same max sizes for BitmapData and Loader:
Quote:
In AIR 1.5 and Flash Player 10, the maximum size for a loaded image is 8,191 pixels in width or height, and the total number of pixels cannot exceed 16,777,215 pixels. (So, if a loaded image is 8,191 pixels wide, it can only be 2,048 pixels high.) In Flash Player 9 and earlier and AIR 1.1 and earlier, the limitation is 2,880 pixels in height and 2,880 pixels in width.
So what I need is to check the file size (width and height) before I attempt to load the bytes of the file into a loader. I'm limited to the ByteArray that I get by the load of the file via a FileReference instance.
Has anybody seen a source where you can get that data out of a ByteArray prior to loading it into a DisplayObject?