Wie man Bilder in Flash CS3 zu retten

Mit dem Einsatz von Adobe Flash CS3 Bitmap wird so verbessert, dass sofort wollte eine kleine Paint zu erstellen. . Wir haben bereits gesehen, wie eine kleine Paint-machen (siehe Paint in Flash CS3 erstellen Painter: einfache Anwendung zum Zeichnen in Flash CS3 Pro ) kann eine echte "Radiergummi"-Unterstützung - Löschfunktion, dank einer besonderen Verwendung Layer- Shape und Bitmap . Lassen Sie uns sagen, dass Flash (im Gegensatz zu Flex) es nicht zulassen, Kodierung (wie JPG oder PNG) es speichert automatisch die Bitmap-Bilder. Sie können aber drum herum kommen mit einem Server-Side-Scripting und die Fähigkeit, Daten in Flash-POST zu senden.

Die Theorie

Der Kunstgriff, dass wir verwenden können, ist wie folgt: Lesen Sie die Daten in eine Bitmap Pixel für Pixel, sie in hexadezimale Werte ab und senden Sie sie an eine PHP-Seite (in diesem Beispiel verwenden wir PHP und die GD-Bibliothek, um die tatsächliche erstellen POST ' Bild, aber auch andere Lösungen sind gleichermaßen wirksam).

Nehmen wir an, dass der einzige Nachteil dieser Technik sehr langsam ist, zumindest mit Bitmap groß genug (Ich habe versucht, mit einer Bitmap 640 x 300)!

Auch, wie Sie in den ActionScript-Code zu sehen, können Sie den Fortschritt der Implementierung, sondern nur zu der Veranstaltung der Abschluss aller Arbeiten, Actionscript + PHP.

DIE PRAXIS

Bei einer Bitmap, um den Algorithmus verwenden können folgende sein:

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
/ **
* @ Prototype: 0.0.1
* @ Autor: undo = =
* @ Email: @ g.fazioli undolog.com
* @ Web: http://www.undolog.com
*
* @ Parameter:
*
* __bitmap: Zeiger auf unsere Bitmap
* __width: Breite in Pixel
* __height: Höhe in Pixel
*
* /

/ / Copy zu lesen - das könnte vermieden werden
BitmapData = new BitmapData ( __width , __height ) ; var SBMP: BitmapData = new BitmapData (__width, __height);
( __bitmap ) ; . SBMP draw (__bitmap);
/ /
Array = new Array ( ) ; var Pixel: Array = new Array ();
var xx : uint = 0 ; xx < = __width ; xx ++ ) { for (var xx: uint = 0; xx <= __width; xx + +) {
var yy : uint = 0 ; yy < = __height ; yy ++ ) { for (var yy: uint = 0; yy <= __height; yy + +) {
( sbmp . getPixel32 ( xx , yy ) . toString ( 16 ) ) ; . Pixel push (sbmp. getPixel32 (xx, yy) toString (16).);
}
}
/ /
URLRequest = new URLRequest ( "http://miodominio.com/savebitmap.php" ) ; var urlreq: URLRequest = new URLRequest ("http://miodominio.com/savebitmap.php");
URLVariables = new URLVariables ( ) ; var urlpar: URLVariables = new URLVariables ();
URLLoader = new URLLoader ( ) ; var urlldr: URLLoader = new URLLoader ();
/ /
( Event . COMPLETE , urlldr. addEventListener ( Ereignis . COMPLETE
e : Event ) : void { Funktion (e: Event- ): void {
'Completato' ) ; trace ("Abgeschlossen");
}
);
/ /
toString ( ) ; . urlpar Pixel = Pixel toString ().;
= __height ; urlpar __height = Höhe.;
= __width ; . urlpar __width = Breite;
= urlpar ; . urlreq urlpar = date;
= URLRequestMethod . POST ; urlreq method =. URLRequestMethod POST.;
( urlreq ) ; . urlldr Last (urlreq);

Wie können wir PHP-Code:

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
/ **
* @ Prototype: 0.0.1
* @ Autor: undo = =
* @ Email: @ g.fazioli undolog.com
* @ Web: http://www.undolog.com
*
* @ Parameter:
*
* __bitmap: Zeiger auf unsere Bitmap
* __width: Breite in Pixel
* __height: Höhe in Pixel
*
* /
/ / $ Pixels wird ein Array mit den Werten der einzelnen Pixel
explode ( "," , $_POST [ 'pixels' ] ) ; $ Pixels = explode ("", $ _POST ['Pixel']);
$_POST [ 'width' ] ; $ Width = $ _POST ['width'];
$_POST [ 'height' ] ; $ Höhe = $ _POST ['height'];
/ / Erstellen Sie das Bild an - @ Thema Vermeidung von Fehlern
imagecreatetruecolor ( $width , $height ) ; $ Image = @ imagecreatetruecolor ($ width, $ height);
/ / Schreiben der Pixel entlang der Länge und Höhe
0 ; $ Index = 0;
$x = 0 ; $x < = $width ; $x ++ ) { for ($ x = 0; $ x <= $ width, $ x + +) {
$y = 0 ; $y <= $height ; $y ++ ) { for ($ y = 0; $ y <= $ height, $ y + +) {
hexdec ( "0x" . substr ( $pixels [ $index ] , 2 , 2 ) ) ; $ R = hexdec ("0x". substr ($ Pixel [$ index], 2, 2));
hexdec ( "0x" . substr ( $pixels [ $index ] , 4 , 2 ) ) ; $ G = hexdec ("0x". substr ($ Pixel [$ index], 4, 2));
hexdec ( "0x" . substr ( $pixels [ $index ] , 6 , 2 ) ) ; $ B = hexdec ("0x". substr ($ Pixel [$ index], 6, 2));
imagecolorallocate ( $image , $r , $g , $b ) ; $ Color = imagecolorallocate ($ image, $ r, $ g, $ b);
$image , $x , $y , $color ) ; imagesetpixel ($ image, $ x, $ y, $ color);
$ Index + +;
}
}
/ / Write Bild (JPG - aber Sie können ein anderes Format verwenden) auf der Festplatte / Server
$image , "immagine.jpg" ) ; imagejpeg ($ image, "bild.jpg");
$image ) ; // libero tutto imagedestroy ($ image) / / free all

Wir werden in Kürze wieder über dieses Thema mit dem Vorschlag zu anderen Lösungen ... ;)

Verweise und webgrafia:

4 Kommentare zu "Wie man Bilder in Flash CS3 zu retten"

  1. 8. Oktober 2008 werutzb:

    Hallo!

    Ich möchte besser meine SQL-Funktionen.
    Die rote wirklich viele SQL-Bücher und möchten
    Lesen Sie mehr über SQL für meine Tätigkeit als MySQL-Datenbank-Manager.

    Was würden Sie empfehlen?

    Thanks,
    Werutz

  2. 13. Januar 2009 Abramovicl:

    Hallo, ich habe einige Fragen über Sie desing
    Vielleicht kannst du Designer Kontakte?

  3. 21. Juli 2009 Uday:

    Der obige Code ist perfectelly workiing, wenn wir den Export der SWF Höhe sind und mit weniger als 400 Pixel. Wenn wir die Höhe zu nehmen und mit mehr als 400 Pixel, dann ist es nicht.

    Kannst du mir bitte sagen, wie kann ich ein Bitmap Alle mehr als 500 × 500 Pixel von Flash?

  4. 3. August 2009 Giovambattista Fazioli :

    @ Uday: Bitte überprüfen Sie Ihre PHP-Einstellungen. Könnte einige Timeout-Einstellung zu niedrig. So senden Sie Bitmap-Pixel auf dem Server in POST-Modus können mehrere Minuten in Anspruch nehmen.

Hinterlasse einen Kommentar

XHTML TAG PERMIT: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> INSERTION CODE:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL 


Stoppen SOPA