Actionscript 3 :: Getting Image Size From ByteArray?
Oct 25, 2011
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);
How can I get the size of a ByteArray in bytes? I want to know, to see the difference in data transferred before and after the compression of a string (via ByteArray).
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 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?
I have three images and I want change the images size based on the scene size (default size is 1024x768). After each image has completely loaded I call bindableUtils.setter to set width/height when scene size changes but I don't know how to make a pointer or something like that. I'm using a public var img, but it only works with the last complete image.
Here is my code: <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
I'm capturing an image from an swf and transmitting it as a byteArray to a php file. Everything seems OK in capturing and sending the data but the final image doesn't display and says it is corrupt.
I'm not sure if i need to do something to the byteArray or if there is something wrong on the php side that is causing the error?
I'm using stuff I've found on other posts and haven't tried JPGEncoder yet which is mentioned in some of those posts and examples. I thought it would be simple enough if it was just a getPixels() and wouldn't need JPGEncoder.
here is my AS3 code:
PHP Code:
// owl is mc with image on stage var bitty:BitmapData = new BitmapData(owl.width, owl.height); bitty.draw(owl); //
I'm trying to upload a photo on Facebook using Javascript SDK. In particular I generate a base64 encoded bytearray from my Actionscript3 app, I pass it to Javascript file using ExternalInterface, and from that I decode the bytearray and I try to upload to FB. But it give me this error: {"error":{"message":"(#324) Requires upload file","type":"OAuthException","code":324}}
I tried to upload an image simply from url, and in that way it goes well! This is my Javascript code: upPhoto:function(photo) { var img = F.decode_base64(photo); FB.api('/me/photos', 'post', { message:'test', fileName:'test', [Code] .....
I am trying to display a bytearray as a resized image. The Image is displaying correctly, but the sizing is off. Let me explain.
First I have the image data encoded so I need to decode the image data
// Instantiate decoder var decoder:Base64Decoder = new Base64Decoder(); // Decode image data
[Code]....
This works. The image is displayed correctly. However, if I hardcode the image (img) height the resized image is shown correctly, but within a box with the original image's dimensions.
For example, if the original image has a height of 300px and a width of 200px and the img.height property is set to 75; the resized image with height of 75 is shown correctly. But the resized image is shown in the upper left corner of the img container that is still set to a height of 300px and a width of 200px. Why does it do that? And what is the fix?
The best way to illustrate the problem is by placing the image inside a VBox and show the borders of the VBox. From the code block above, if I change the image height and set the image to maintain aspect ratio (which by default is set to true but I add it here for completeness). the problem becomes clear.
// Display image var img:Image = new Image(); img.height = 75; // Hardcode image height (thumbnail) img.maintainAspectRatio = true;
How can I get the bytearray data from an image that is under certain shape, for example a circule or square?Let's say I want to modify ONLY the pixel inside this circule, how can I get this Bytearray data?
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'm trying to grab the BitMapData from an Image, convert it to JPG, and send it to a server where it will be written to a file. It "looks" like it works, the resulting .jpg is the right size and displays in an image viewer, but there is no picture... just an off-white background. Here's a code snippet:
imgTemp.addEventListener(FlexEvent.UPDATE_COMPLETE , imageLoadedHandler); ... private function imageLoadedHandler(event:Event):void { if (imgTemp.width == 0) return;
[Code].....
Then send "ba" to the server where it's written as a .jpg.
The data "looks" right when I receive it on the server, correct length, bits look the same.
I'm trying to read out some BitMapData into some kind of readable output.
Reason for this is I'd like to trace out the ByteArray and hopefully cut and paste its details into an .as file and then compare it against another BitMapData Object or byteArray that is generated within the app.
Basically I want to compare differences between the two and report back how many pixels or something are different.
It might seem like a strange or approach.
I can create a BitMapData Object, it traces back as [object BitMapData] - so I thought awesome just loop through the Object... But looping through the Object traces nothing at all back out.
So I tried to create a ByteArray and then convert that to a string, but all I get is wierd 'y' chars with two dots on the top of the char.
I've left some code below,
Code: public function GetAndCompareBitmapData(target:DisplayObject) { var bd:BitmapData=new BitmapData(target.width,target.height); trace("bitmapData "+ bd); // trace [object BitMapData]
I'm trying to snap a bitmap image from within my application, and upload the bytes directly to my server to save as an image. I'm trying to same three separate images, three different sizes. I am able to do it twice, but as soon as it tries to save the third image, it throws a 2176 error...
ActionScript Code: var url:String = 'myUploadURL'; var request:URLRequest = new URLRequest(url); request.contentType = 'multipart/form-data';
[Code]....
I've tried a 3rd party class which wraps the byteArray and sends the data. This too works the first two but not the third.
Is it because I start by calling a function on mouseClick, that snaps the first bitmap then uploads, then snaps the second and uploads, then snaps the third and by the time it tries to upload, Flash assumes the function is 'too far away' from the mouseClick, and doesn't think it comes from user interactivity?
i try to get a bytearray from a webcam. i can get the image of the webcam, copy it to bitmapdata and get the bytearray. but is it possible to get the bytearray from the image and sound from the client's webcam?
I have an object that stores the compressed ByteArray version of an image (jpg or png). I want to keep it that way as the bytearray is about 30x smaller than the Bitmap it creates. The problem I run into is when I want to bind an image to this byte array. I can't really bind it to bytearray, because it requires a BitmapAsset as a source. Is there a way I can load a BitmapAsset from a bytearray but still bind to the bytearray when a new image is available?
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
I'm having a task in which I have to read and save images in the database.I'm using C#.net Webservice and SQlserver2008 database and I'm saving image as varbinary format.How I can read images from local system and convert it into byte array in Flex ?How to show images in Flex that are recieved in type Bytearray?
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 working on a game, made with Flash (using AS3) The game has a fast ball and when this ball hits an object it has to make a sound... but the sound starts with delay (so the ball is far away when the sound is played).This sound is edited by me and it hasn't got any silences at the beginning.The method i'm currently using is the simplest one:
public var sonidoPuntos1:sonidopunto1 = new sonidopunto1()
and then...
sonidoPuntos1.play()
I am trying to introduce the file into a ByteArray and then playing it from there...
I've been playing with the Jpeg encoder now for a while and haven't come much further than just realising how to turn an image into a ByteArray of numbers. The code below is incredibly useful at turning a movieclip on the stage into a Jpeg and downloading it to the user. Unfortunately I need to amend the Bytearray first with a crop tool before creating the jpeg. e.g. delete the array value if the image is outside of the rectangle? And a rotate tool, e.g. all the values in the array switch places 90 degrees!? (the X and Y values switch over).Also it downloads to the user, but I need it to save onto the server so I can keep using it in flash, before then emailing the jpeg to a known email address.
(E.g. if a 10px x 10px bitmap, would have 100 values in the array, to crop it into a 5 x 5 image, I would delete array entries where X < 2 and X > 7 and Y < 2 and Y> 7. Or to rotate it, X for 1st pixel becomes the Y for the 1st pixel and vice versa)....
I've done quite a bit of digging but it's surprisingly difficult to find informed answers to these questions. I'm making a Flash game with a friend; as far as we can tell, the code is fine, but there are some serious framerate problems that seem entirely related to the graphics.
Is there a performance difference between Movieclips as JPGs and PNGs? Most of our graphics are imported as PNGs because they have transparent sections, but I don't know whether there is a performance difference between setting image compression to JPG or PNG within Flash itselfDoes turning on "Smoothing" for an image affect performance?Obviously larger graphics have more of a performance hit, but is there any benefit to splitting a large image into pieces? Example, changing a 2000*1000 background into two 1000*1000 pieces? One thing is most of our graphics are as much as twice the size in the library as they are displayed onscreen, then scaled in the code. We had wanted to make the game still look good when zoomed in/fullscreened but that doesn't seem practical so I'm planning on resizing all of the image files to their final size in the game and removing the scaling code. Hopefully that's the major part of the problem.
I am making a sort of portfolio gallery inside my flash project. Every image I try from large to small still shows up very jagged. What is the best size to fit in my 1024 by 768 stage taking up about 80% of it?
I am using flash 8. and i have one .Jpg image (1024 x 768px - Its vary) now i want to load this image to my Movieclip. But my movieclip size is 130 x 140px. how is it possible to load and fix this movieclip size.