ActionScript 3.0 :: Performs A Median Filter On A Bitmap?
Dec 29, 2006
Does anyone know of any existing actionscript code (as2 or as3, functions or classes) that performs a median filter on a bitmap? Seems like it's kind of a common image processing filter, but I couldn't find anything online in my google searching.
Additionally, if you know of any collections of as2 or as3 code for image processing filters in general, it would be much appreciated. An efficient Mosaic filter would be useful to me as well.
I looked at the following example in the AS3 Reference: [URL] It is unclear to me looking at the package example how to apply this in standard ActionScript 3 without packages to a Movie Clip resident in my Library that gets called at RunTime. how I would push the DropShadow filter onto my Movie Clip at RunTime?
I found a tutorial on how to make a cool water effect in as3 using bitmap data and a displacement filter. It works great but it is very heavy on the computer.
here is my code
Code: var bmd:BitmapData = new BitmapData(700, 398); var dmf:DisplacementMapFilter = new DisplacementMapFilter(bmd, new Point(0,0), 1, 2, 10, 30); var p1:Point = new Point(0, 0); var p2:Point = new Point(0, 0);
I see lots of XML menus that perform one type of action, e.g.: open a new URL everytime a menu item is clicked, but I haven't seen a good example of how to allow for different actions for different menu buttons.In my case I need to load mainly CDATA test with the exception that one menu item will load an image gallery. I could either call a function to create the gallery or I could use loadMovie to import an external SWF. The main problem is how to change the code below so that when
I am currently making for fun a racing game. When it started to get in shape, I decided to try it in a browser.
Now, when using CTRL+Enter or running the swf file, it was all working really smoothly. But when I ran it through a browser (when publishing, I generated html file and opened it in FireFox) it was extremely sloppy.
My first thought is that there are too many calculations which resulted in low fps. I downloaded and put a script to measure the fps. In both, IDE and browser, the movie was played back with max fps of 24. When I increased it to 50 it was still reaching max fps in both, yet in browser movie was still really sloppy (though it was a little bit better than with max fps being 24). When raised to 100, playback in browser was capped at 60fps on different computers so I guess it's a flash player cap. Movie was still not smooth at all.
To achieve a zoom effect in our 2D flash game, we make the background of the game much bigger than the visible stage. This becomes a problem when the background is complex or when we apply a grayscale filter to the background. Is there a better way to do zoom? Or, is there a way to apply the filter to only a specific area of a movieclip?
I'm cutting my teeth in actionscript 3 on a game that has a character running through a world. So, I have set up my Hit Testing by using the bitmap data hit test method, since I figured my world is going to be destructible - it'd be nice to update the level and then redraw it and have the character interact with the new change. (That works beautifully) I am however; a bit confused as to how I have my hit Testing set up. I've been messing around with it, and it works for now - but I'm not sure why.. currently, I have a character set up by using a class I built and using a series of animations I created. So, this character has a walking and falling animation, etc. This is a movie clip.
Then there's a bitmap 'emptyBitmap' with bitmap data created - however; I never really added this as a child to the character. This is sized to the dimensions of my character. My level is created as a movielip, then it's drawn to a bitmap - when the level movieclip is changed, the bitmap redraws, and that's how this updates.
I know the topic of "duplicating" movieclips is a hot issue with the new virtual machine. Luckily, I understand the implications. I only am [currently] interested in duplicating a Bitmap. See, I load an image from an URL using 'flash.display.Loader.load', which is a non-blocking operation in Flash Player.However,I may use multiple copies of the loaded image (which is reported to be a Bitmap, naturally) in the display list at the same time.Hence, I naturally do not want to load the image from an URL every time, because I don't want to wait for a non-blocking call to complete. Nor do I need to - I mean one copy is already loaded, so it should be possible to just "duplicate" it, right?
My idea is to do use the bitmapData property of a Bitmap and pass it to the constructor of a new Bitmap object. I have not tried the following in action, but I want to hear whether any of you did and if the following would not work, what would:
Code:
var original_bitmap: Bitmap; var copy_of_original_bitmap: Bitmap = new Bitmap(original_bitmap.bitmapData);
LiveDocs mention that the BitmapData being passed to a Bitmap constructor is "being referenced", which to me might suggest it cannot be used twice? There is also the BitmapData::clone() method, which I am not sure is applicable here or not.I know this is a lot of talk instead of just trying this out, but I test so much Flash Player code daily just to see "what works" (which should be documented instead by Adobe),
If I have a BitmapData that's already been drawn onto a Sprite. Is there a way to redraw the BitmapData onto a Sprites Graphics object without having to invoke beginBitmapFill and passing in the same BitmapData?
I'm working on a game, and to keep performance good, instead of addChild'ing 50 new sprites to the stage every second, I decided to have each player draw to their own bitmap, and then to the 'master' bitmap. This introduces an issue though: the second player would override all data the first player has put into to bitmap...My basic debugging proof of concept:
I have a bitmap which has several frames (packed along the horizontal axis). In order to render them I copy it to the backbuffer (larger bitmap) as follows:
Actionscript Code: public override function copyToBackBuffer(db:BitmapData):void{ if (active) var drawRect:Rectangle = new Rectangle((currentFrame-1) * frameWidth, 0, frameWidth,
In pure AS3, I have a pixelbender and a large bitmap. The pixelbender is configurable with a distance parameter to affect only a small area of the bitmap. The problem is that the pixelbender is executing over the whole bitmap. What would be the best way to update only the effected region of the bitmap? Given this config:
Is there a way to write a bitmap font right into the bitmap being desplayed? Mabey better worded: myBitmap.draw(image, t) draws a picture is there a way to draw text? I'm stuck even if its just a work around in some way I would like to know... (the current work around i have in my head is writing it in a movieclip turning that into bitmap data and drawing it... esentially creating a prototype answering my question... but a built in way would be easier probably).
In AS3, I am loading a png from a zip file (nochump's zip library through ByteArray to Loader). The png can be up to 45k pixels wide but only 120 tall. This creates a problem in flash, as images can only be ~8000 pixels wide. A possible solution would be to split the images into 6 columns somehow. This would probably need to be done in the ByteArray state, because the limitation is in Bitmap and Loader.
I'm using Sandy to animate some objects in 3D. What I currently do to images which are EXPORTED in the library, I want to do to some bitmaps that I create using the DRAW technique. But it wont work :-(
CODE FOR 'CREATED BITMAP' : ActionScript Code: var bData:BitmapData = new BitmapData(myObject.width,myObject.height); bData.draw(mask5);
[Code]....
Sandy doesn't seem to treat the 'created' bitmap the same as those that are exported from the library.
I haven't worked very much with bitmap manipulation and I need to create an app that can find a bitmap (or a pattern of pixels really) in another bitmap.Are there other methods of doing it besides iterating through the pixels and using getPixel()?I'm of course looking for the most effective solution.
I have a filter applied programmatically to a screen-size movie clip (a displacement map filter). However, I can't seem to place anything above it unaffected. Even textfields defined in the .fla are affected...
I have imported a JPG in to my library, converted it to a button, and then I animate the button in from frames 1-30. I then stop() the animation.If I hover over the button in the preview, the cursor changes to the hand as you might expect.Now, if I double click on the instance of the button, I get to the "edit in place" screen, with the 4 frames - Up, Over, Down Hit.I'm unable to apply any filters to this button. It says the "button" is a "bitmap" in the properties.How can it be both? And what is the recommended way of doing this.It seems I can create a new instance of the button on the "up" frame and the "over" frame etc, but this seems wrong plus they all need different names so that makes no sense.
When I rotate an external loaded image it gets a different filter than the other embedded images. Like this: What can I do to change the filter from "squares"/gitter to bi-linear?
I needed to convert a simple graphic symbol into a movie because I wanted to give it depth using the (gradient bevel) filter effect. The movie has to appear at different sizes in my animation but the filter effect does not scale with the symbol. Is there a way to make this filter effect (gradient bevel) scale when I scale the symbol it is applied to?
The attached piece of code produces strange results. When first run we get this result -- why does the first trace output include the XML elements, and the second only the text?
I've created an interactive map with filters for the map points using if/else visible statements.
The problem is that some of the points belong to more than one filter (i.e., health, education related, etc.). So the filters act properly when selected and deselected one at a time but don't show the proper map points if more than one filter is selected.
here's a painfully easy one I bet -- I'm aware of how to use EX4 to filter most pieces of the xml I need however how can I filter an XML list such as the one below to check say --- if a dog is a beagle? preferably as a Boolean.
ive attached a drop shadow filter to a mc.... but when i roll out of it i want to remove the filter effect.. ive searched livedocs and found document.removeFilter(), but i dont really understand how it works =( so here�s my code:
import flash.filters.DropShadowFilter; var myDropFilterropShadowFilter = new DropShadowFilter(35, 90, 0x9A9A9A, 5, 30, 30, 1, 50, false, false, false);
This function is added to several MC:S with a loop the result that it slows down everything
When i roll over it several times it just adds one more drop shadow object to the instance, but i suppose i can control that with some function, i will look into that next..