ActionScript 3.0 :: Detecting Percentage Of BitmapData That Is Transparent?
Jun 6, 2011
Is there any way of checking what percentage of the BitmapData is filled, and what percentage is transparent?You could easily brute-force it by looping through each pixel and counting which ones are empty
I'd like to know if there's anyway I can compare two BitmapData and get a "similarity percentage" (knowing how look-alike they are). I've done a bit of research and came across bitmapData.compare(otherBmd), but that only returns if they differ in size, or pixel, and not how much they differ. The point of this was to compare some Bmd obtained through a camera with a library image (so this is what I got so far):
import flash.display.Bitmap; import flash.display.BitmapData; var img1:BitmapData = new monaLisa(); var cam:Camera = Camera.getCamera(); var video:Video = new Video(camMock.width,camMock.height); video.attachCamera(cam); [Code] .....
I have a BitmapData object created dynamically that contains user-drawn shapes. I then attach that BitmapData object to a MovieClip via a Bitmap object and set that MovieClip as a mask to another MovieClip. The mask works but the whole bounding rectangle of the BitmapData is acting as the mask. But I want to exclude the transparent portion from the mask so only user-drawn shape can be set as mask. Can anyone tell how to achieve that?
i am loading a background bitmap into a sprite. after that i make this sprite draggable. now i would like to have a copy of this sprite where just the area with the non-transparent parts of the bitmap react to the click.
i know that i can determine if a pixel is transparent with the getPixel32() method, but it seems to be overkill to anylyze every pixel... or is it not?
I am trying to detect if a point on an image is on the opaque part of the image or the transparent part. I have a image in a 48X48 area. half the image has transparent pixels. I seem to detect a hit on every part of the image like a bounding box test but I don't want that. For example . I place a 48X48 size image on stage at 0,0. At point 40,20 on the stage the image has transparent pixels but I get it detects a hit? mm.img.hitTestPoint(40,20,true); //it should give me false
I have a huge background bitmapdata with a corresponding grid. I'm trying to draw the two parts onto a different bitmapdata, but for some reason, the bitmap for the grid is overriding the bitmapdata of the background that is being drawn first. The grid seems to be making the entire third bitmapdata transparent for some reason.
My code for creating the background and corresponding grid:
I have a list of images, and without scanning through each pixel in each image, I want to find out if the image contains transparency (at least one non-opaque pixel).Is there a shortcut to do this (like a property of bitmapData object) rather than looping through the pixels?
im trying to draw opaque pixels on a transparent bitmapdata background
heres the ex:
ActionScript Code: //TRANSPARENT BACKGROUND var _pixelColor:uint = 0x9998002E; var _bmpd:BitmapData = new BitmapData(4, 7, true, 0x00333333);
[Code].....
This example paints 2 arrows, the first is using the transparent background, and the second is using an opaque background on the BitmapData.
What I'm trying to achieve is to paint the pixels of the arrow completely opaque on the transparent background. But as you can see, the pixel is at 99% of its opacity (var _pixelColor:uint = 0x9998002E) How can I paint 100% opaque pixels on a transparent BitmapData "canvas"?
I am trying to use the bitmapData.setPixels method to set certain pixels in the bitmap transparent.But no matter what I do, it always seems to set the pixel(s) black (non-transparent).Here is my code:
[AS] bmpd = new ImageFromLibrary(0, 0); bmpd.setPixel(0, 0, 0x00000000); [/AS]
I have two png files. I import them using loaders. The images in the png files each have opaque (solid) and transparent parts. I want to use the bitmapdata.hittest method to detect when their opaque parts have collided.
[Code]...
I've been working on this for a couple of days now and nobody seems to know how to do this. Please don't post the examples on google, I've looked through at least the first five pages of results on google and haven't gotten any of them to work. The problem is that none of them provide an example of using this method with loaders, so I'm guessing the reason I can't get it to work is some gimmick associated with them.
public static function cloneDpObj(target:DisplayObject):Bitmap { var duplicate:Bitmap;
[code]....
to clone target displayObject (MovieClip or Sprite) and return Bitmap Object.
It can get bitmap from the target object, but it seem don't get all the area of the image.
By give the width and height of target object, but the target object in design was applied by Glow Effect, so my question can we get the all view of bitmapdata from a displayobject?
When I publish the file, I'm getting the following error message in the Output panel:
**Error** Scene=Scene 1, layer=Layer 2, frame=1:Line 7: The class or interface 'BitmapData.loadBitmap' could not be loaded. var plaid:BitmapData.loadBitmap("plaid");
I am trying to use the reflect class from "http://pixelfumes.blogspot.com/2007/03/reflection-class-v3-with-source .html" but I keep getting this error:
ArgumentError: Error #2015: Invalid BitmapData. at flash.display::BitmapData() at Reflect() at Site_fla::GalleryPage_29/loadThumbs() at Site_fla::GalleryPage_29/sortXML()
[Code]...
btw, first I used assigned thumbContainer as the mc argument (outside the loadThumbs() function) and it worked but not exactly what I wanted... because I thought it is supposed to update when the movieclip is animated but it actually didn't... when I use a scroller, only the thumbs that are first loaded to the stage get the reflection..
I've been using BitmapData.copyPixels() to draw graphics onto a canvas (Bitmap).I need to rotate the resulting graphics without the use of draw() because it's vastly slower.How can I rotate the target graphic? I'm assuming that there might be a formula or library that I can use which will first reorganize the pixels that make up a graphic based on an origin (point) and radians.I'm pretty certain that I'm not capable of creating such logic, so if there are any known libraries that do this, that would be awesome.I'd like to achieve something similar to XNA's SpriteBatch.Draw() method, which accepts rotation as its 5th argument.
I imported a video into flash and have a transparent photoshop layer to create an iPod skin. The video works fine, but I cannot get the "stage" to be transparent so that you do not see the flash background color behind the iPod skin.
I've read in the forums and have followed the instructions here from Adobe. If you look at my code, I have
how to use the bitmapData collision method. Now I'm trying to figure out if there is a way to see at what angle or coordinate of the bitmapData the collision happens? I need it in order to figure the accurate bounce angle after the collision occurs.
I'm currently working on a flash game and I need to know how to addChild a BitmapData or draw a BitmapData to screen. If I can't than how can I give a DisplayObject my BitmapData?
I am creating a map in flash cs4 with all the countries on it. I used photoshop for creating the map and separated countries. Now I imported all pngs in Flash and I want to give Mouse CLICK event and Mouse Hover on all pngs, but as the transparent pixels are overlapping the other states, it is getting difficult. So, I converted all pngs in movieclips and now then I broke up pngs. Now I want to delete all pixels having alpha 0 using eraser tool, as per the borders. And I have to do it manually for individual countries. So is there a way to remove transparent pixels from the bitmap data?
I've made a mobile version of my software, with low-res images and such, and I can now fully buffer all my content (including a 360 frame animation which is buffered to memory). Problem is, that everytime I update the view, more memory is used.When I write image = new BitmapData();, does it store the previously created BitmapData's in memory? Do I have to flush the memory somehow before I draw my second picture in BitmapData?Example:
ActionScript Code: // In this example I draw using the same bitmapData several times, also //overwriting the first image. Do I have to somehow delete the data first, to
I have two png's that kind of look like paint brush strokes. they have some transparency in them that lets the stage colour bleed through a bit.
I am adding two of these images to the stage in AS 3. One adds quite fine - looks as expected. The second one however doesn't have any transparency other than around its edges. What i mean is it looks more like GIF than a PNG. Rough around the edges, no transparency "inside" the image itself (where there should be)
i have tried re-creating the image (yes it IS a PNG) which did nothing. I ensured the library item is not being treated as a JPEG. I also even tried externally calling the PNG to see if that made a difference. Unfortunately it did not.
why this second PNG doesn't seem to have a transparency set?
I am having an issue with using BitmapData.draw(stage). I am getting the following error:
SecurityError: Error #2123: Security sandbox violation: BitmapData.draw: file:///C|/Documents%20and%20Settings/bla...bla...bla.swf cannot access null. No policy files granted access. Here is a portion of my code:
var bd:BitmapData = new BitmapData(2800, 2100); bd.draw(stage);//this is where the error happens All of the files referenced (.xml/.jpg/.swf) are located in the same local folder as the main .swf. How do I get around this error? The main objective is to print the stage using PrintJob(). I am using Flash Professional CS5.5 and publishing to Flash 10.0/10.1. Let me know if I need to supply any more info.
The title might be a little misleading. Look at my code and I will explain
public static function loadTile(tileDir:String = "empty"):void { if(tileDir != "empty") { tPoint = new Point(0,0); tRect = new Rectangle(0,0,30,30);
[Code]...
I am trying to do tiling with sprites. I want my tiles to be interactive, so that is why I am using the sprite object instead of using regular bitMaps to represent my tiles. You might be wondering why I wouldnt just use graphics.beginBitmapFill(tImage); and graphics.drawRect(0, 0,tWidth ,tHeight ); to pick out the tiles I want to use. Well reason being is because it turns out that drawRect() first and second parameters actually alter the location of where the actual sprite sits at.
So if I set the x and y properties of the sprite to x = 20, and y = 20. then I set my drawRect(20,20). it actually adds an extra 20 pixels to my x and y coords of my sprite. And I know the reason why, I just need to know a better way.
there are few comments i hear from other people. some say the axis of the carousel crooked and the icons are pixelated when they are scaled down. i m trying to add a transparent video of myself in the center but when i mask the carousel the embeded swf files also get the mask so i was wondering if there was a way to make the icons have alpha 0 when they are back all the way.. here s the link for the regular website [URL] and below is my actionscript
Ok so i'm trying to create a percentage bar that automaticlly adjust depending on data pulled from a XML file. and I'm currently have some problems with the data getting to the second frame.. here is what I havethe xml file code:
how to make a my swf appaer as a percentage of the screen not a defined size and I can't seem to work it out. I nee something to appear on screen at a resonable size. 640 by 480 is too big for certain users and width="480" height="360" is too small for others.