Articles Tagged 'BitmapData'

How to apply the technique of chroma key in Adobe Flash

The technique of chroma key , ie the replacement of a certain color to another (or a different source), has exploded once again in the last decade with great arrogance, thanks to the increasingly widespread technology in the film and the processing of digital images.

Continued ...

Flash CS3: Create a reflex effect on any MovieClip

Taking advantage of a remarkable feature of Actionscript 3.0 (see ActionScript 3.0, all with the new operator ) I created a class ReflexMe able to generate an effect "reflection" on any MovieClip present in the library.

Loading Flash ...

The source is part of the package undolibrary - GoogleCode of this - but if you want you can download the single file ReflexMe.as .

Continued ...

Effects on the bitmap with perlinNoise ()

The class BitmapData allows you to easily apply effects useful for various purposes. We have already seen how to create a "fog TV" with a few lines of code ( Flash CS3 to create fog effect TV in 1 second ). Now we will deal with another effect "spectacular" which, as we shall see later, allows the creation of interesting visual effects, as in the example shown below: the parameters varied to observe the different effects, clicking the mouse on the image generated This can be moved.

Loading Flash ...

On this occasion I also added a new simple component (Check) in Undolibrary ! So update your SVN repository. The source is available here: MapEffect.zip

Continued ...

How to save images in Flash CS3

With the use of Adobe Flash CS3 Bitmap is so improved that is immediately wanted to create a small Paint. . We have already seen how to make a small Paint (see Paint in Flash CS3 Create a Painter: simple application for drawing in Flash CS3 Pro ) can support a true "eraser" - erase function, thanks to a particular use of Layer Shape and Bitmap . Let's say that Flash (as opposed to Flex) it does not allow encoding (such as JPG or PNG) it automatically saves the Bitmap images. However you can get around it using a server-side scripting and the ability to send data in POST Flash.

Continued ...

Flash CS3 to create fog effect TV in 1 second

Flash CS3 does not ceases to amaze. Here's how to create the classic fog of televisions in a second with 10 lines of code.

Loading Flash ...

Continued ...

Painting Flash CS3: real time erase tool

Starting with the codes provided in Flash CS3 Create a Paint , and performing minor modifications, can greatly improve the instrument of "erase". Adding a Shape is not visible, you can use it as a "plan" to run the draw() blend mode "erase". As shown in the example below, after drawing something, hold down the Ctrl key and the effect of "cancellation" is now in real time.

Loading Flash ...

The code is as follows - Source :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
. MouseEvent ; import flash.events. MouseEvent ;
. BitmapData ; import flash.display. BitmapData ;
. Bitmap ; import flash.display. Bitmaps ;
. GradientType ; import flash.display. GradientType ;
/ /
. Matrix ; flash.geom imports. Matrix ;
/ /
Boolean = false ; md var: Boolean = false;
/ /
Sprite = new Sprite ( ) ; var event_spr: Sprite = new Sprite ();
event_spr ) ; addChild (event_spr);
/ /
Number = event_spr . stage . stageWidth ; var area_width: Number = event_spr. internships. stageWidth;
Number = event_spr . stage . stageHeight - 32 ; var area_height: Number = event_spr. internships. stageHeight - 32;
/ /
String = GradientType . LINEAR ; fillType var: String = GradientType . LINEAR;
: Array = [ 0xFF0000 , 0x00FF00 , 0x0000ff ] ; var colors: Array = [0xFF0000, 0x00FF00, 0x0000FF];
: Array = [ 1 , 1 , 1 ] ; var alphas: Array = [1, 1, 1];
: Array = [ 0 , 128 , 255 ] ; var ratios: Array = [0, 128, 255];
String = SpreadMethod . PAD ; spreadMethod var: String = SpreadMethod . PAD;
: Matrix = new Matrix ( ) ; var matrix: Matrix = new Matrix ();
createGradientBox ( area_width , area_height , 1 , 0 , 0 ) ; matrix. createGradientBox (area_width, area_height, 1, 0, 0);
/ /
event_spr . graphics ) { with (event_spr. graphics) {
fillType , colors , alphas , ratios , matrix , spreadMethod ) ; beginGradientFill (fillType, colors, alphas, ratios, matrix, spreadMethod);
0 , 0 , area_width , area_height ) ; drawRect (0, 0, area_width, area_height);
; endFill ();
}
/ / Paint event
( MouseEvent . MOUSE_DOWN , _onMouseDown ) ; event_spr. addEventListener ( MouseEvent . MOUSE_DOWN, _onMouseDown);
( MouseEvent . MOUSE_MOVE , _onMouseMove ) ; event_spr. addEventListener ( MouseEvent . MOUSE_MOVE, _onMouseMove);
( MouseEvent . MOUSE_UP , _onMouseUp ) ; event_spr. addEventListener ( MouseEvent . MOUSE_UP, _onMouseUp);
( MouseEvent . MOUSE_OUT , _onMouseUp ) ; event_spr. addEventListener ( MouseEvent . MOUSE_OUT, _onMouseUp);
/ /
BitmapData = new BitmapData ( event_spr . width , event_spr . height , true , 0 ) ; var bmpd: BitmapData = new BitmapData (event_spr. width, event_spr. height, true, 0);
Bitmap = new Bitmap ( bmpd ) ; var bmp: Bitmap = new Bitmap (bmpd);
bmp ) ; addChild (bmp);
/ /
/ / Temporary shape
Shape = new Shape ( ) ; var draw_shape: Shape = new Shape ();
draw_shape ) ; addChild (draw_shape);
/ /
/ / Shape is not visible, used for the "cancellation"
Shape = new Shape ( ) ; var erase_shape: Shape = new Shape ();

/ /
e : MouseEvent ) : void { _onMouseDown function (e: MouseEvent ): void {
) ; debug ("_onMouseDown");
. lineStyle ( 10 , 0xffffff , 1 ) ; draw_shape. graphics. lineStyle (10, 0xffffff, 1);
. lineStyle ( 20 , 0xffffff , 1 ) ; erase_shape. graphics. lineStyle (20, 0xffffff, 1);
. moveTo ( e . localX , e . localY ) ; draw_shape. graphics. moveTo (and. localX, and. localY);
. moveTo ( e . localX , e . localY ) ; erase_shape. graphics. moveTo (and. localX, and. localY);
md = true;
}
/ /
e : MouseEvent ) : void { _onMouseUp function (e: MouseEvent ): void {
md = false;
. draw ( draw_shape ) ; bmp. bitmapData. draw (draw_shape);
. clear ( ) ; draw_shape. graphics. clear ();
. clear ( ) ; erase_shape. graphics. clear ();
}
/ /
e : MouseEvent ) : void { _onMouseMove function (e: MouseEvent ): void {
) ; debug ("_onMouseMove");
md && ! e . ctrlKey ) { if (md & &! and. ctrlKey) {
. lineTo ( e . localX , e . localY ) ; draw_shape. graphics. lineTo (and. localX, and. localY);
( md && e . ctrlKey ) { } Else if (md & & and. CtrlKey) {
. lineTo ( e . localX , e . localY ) ; erase_shape. graphics. lineTo (and. localX, and. localY);
. draw ( erase_shape , null , null , "erase" ) ; bmp. bitmapData. draw (erase_shape, null, null, "erase");
}
}
/ /
v : String ) : void { function debug (v: String ): void {
: Date = new Date ( ) ; var d: Date = new Date ();
d . getMinutes ( ) + ":" + d . getSeconds ( ) + ":" + d . getMilliseconds ( ) + ": " + v ) ; trace (d. getMinutes () + "" + d. getSeconds () + "" + d. getMilliseconds () + "" + st);
}

): We have added a new Shape, erase_shape not visible (it was not carried out any addChild() ):

1
2
3
...
/ / Shape is not visible, used for the "cancellation"
Shape = new Shape ( ) ; var erase_shape: Shape = new Shape ();

The piece of code that takes care of drawing has been introduced for the control key and, if pressed, is interested precisely the Shape erase_shape and copied to the Bitmap:

1
2
3
....
. lineTo ( e . localX , e . localY ) ; erase_shape. graphics. lineTo (and. localX, and. localY);
. draw ( erase_shape , null , null , "erase" ) ; bmp. bitmapData. draw (erase_shape, null, null, "erase");

Continued ...

Paint to create an application in Flash CS3

As explained in Flash Actionscript contest: erase tool you can not "erase" a particular area of a Sprite, MovieClip, or Shape on which lines or rectangles were drawn using the graphics cursor. There is, in fact, the only method clear() , however, has no effect on the entire area of the object. The solution to this problem lies in the possibility of using the Bitmap and BitmapData objects. As we shall see we can directly access and manipulate bitmap data in order to "erase" strokes with a real instrument "eraser".

Present two different methods to achieve the "gate". per esempio. The first "draw" (delete) data directly into the BitmapData, using the method fillRect() - can also be used setPixel() for example. The second method, the one I prefer, uses the methods of mergers (blendMode).

First of all let's see what kind of organization is minimally necessary to achieve a simple Flash Painter. The scheme presented below applies to both the proposals of the "gate":

bitmap pattern-

I created three layers: the first, MovieClip or Sprite, background and work the event handler (MouseDown, MouseMove and MouseUp). The second, the Bitmap is our main layers, one that will actually drawn graphics will be applied and on which the "gate". , ecc…). The third and last layer, the Shape, addresses two issues: the first is that it allows to directly use the functions provided by the graphics cursor (like lineStyle , drawRect() , etc ...). It also increases the performance during the tracking chart, as explained in detail below.

Continued ...