So speichern Sie Bilder in Flash CS3

Montag, 31. März 2008

Adobe Flash CS3 mit der Bitmap wird verbessert, so dass sofort wollte eine kleine Paint erstellt haben. Wir haben bereits gesehen, wie man eine kleine Paint machen (siehe Paint in Flash CS3 erstellen ein Maler: einfache Anwendung für die Erstellung von Flash CS3 Pro), die eine echte "Tor unterstützen kann" - löschen Funktion, dank einer besonderen Verwendung von Layer Shape und Bitmap Nehmen wir an, dass Flash (als Gegensatz zu Flex) werden nicht zulassen, Codierung (JPG oder PNG) wird das automatische Speichern von Bitmap-Bildern. Sie können jedoch dieses Hindernis zu überwinden, indem Sie einen Server-Side-Scripting und die Fähigkeit, Daten in Flash POST senden.

Theory

Der Kunstgriff, die wir verwenden können: gelesenen Daten in einem Bitmap-Pixel für Pixel, umwandeln sie in Hex Werte und senden Sie sie an POST an ein PHP-Seite (in diesem Beispiel verwenden wir PHP und GD-Library zu erstellen, die tatsächlich ' Bild, aber auch andere Lösungen sind ebenso wirksam).

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

Auch, wie Sie in ActionScript werden sehen, können Sie den Fortgang des Einsatzes zu überprüfen, sondern nur erhalten, falls der Abschluss aller Arbeiten; Actionscript + PHP.

PRAXIS

Bei einer Bitmap, kann der Algorithmus wie folgt verwendet werden:

ActionScript
  1. / **
  2. * @ Prototyp: 0.0.1
  3. * @ Author: = Rückgängig =
  4. * @ E-Mail: @ g.fazioli undolog.com
  5. * @ Web: http://www.undolog.com
  6. *
  7. * @ Params:
  8. *
  9. * __bitmap: Zeiger auf unsere Bitmap
  10. * __width: Breite in Pixel
  11. * __height: Höhe in Pixeln
  12. *
  13. * /
  14. / / Copy Lesung - dies könnte vermieden werden
  15. BitmapData = new BitmapData ( __width , __height ) ; var SBMP: BitmapData = new BitmapData (__width, __height);
  16. ( __bitmap ) ; SBMP. Draw (__bitmap);
  17. / /
  18. Array = new Array ( ) ; var Pixel: Array = new Array ();
  19. var xx : uint = 0 ; xx < = __width ; xx ++ ) { for (var xx: uint = 0; xx <= __width, xx + +) (
  20. var yy : uint = 0 ; yy < = __height ; yy ++ ) { for (var jj: uint = 0; yy <= __height; yy + +) (
  21. ( sbmp . getPixel32 ( xx , yy ) . toString ( 16 ) ) ; Pixel. push (SBMP. getPixel32 (xx, yy). toString (16));
  22. )
  23. )
  24. / /
  25. URLRequest = new URLRequest ( "http://miodominio.com/savebitmap.php" ) ; var urlReq: URLRequest = new URLRequest ( "http://miodominio.com/savebitmap.php");
  26. URLVariables = new URLVariables ( ) ; var urlpar: URLVariables = new URLVariables ();
  27. URLLoader = new URLLoader ( ) ; var urlldr: URLLoader = new URLLoader ();
  28. / /
  29. ( Event . COMPLETE , urlldr. addEventListener (Event. COMPLETE
  30. e : Event ) : void { function (e: Event): void (
  31. 'Completato' ) ; trace ( 'Completed');
  32. )
  33. )
  34. / /
  35. toString ( ) ; urlpar. Pixel = Pixel. toString ();
  36. = __height ; urlpar. __height height =;
  37. = __width ; urlpar. __width = width;
  38. = urlpar ; urlReq. urlpar = date;
  39. = URLRequestMethod . POST ; urlReq. method = URLRequestMethod. POST;
  40. ( urlreq ) ; urlldr. Last (urlReq);

Wie können wir PHP-Code:

PHP:
  1. / **
  2. * @ Prototyp: 0.0.1
  3. * @ Author: = Rückgängig =
  4. * @ E-Mail: @ g.fazioli undolog.com
  5. * @ Web: http://www.undolog.com
  6. *
  7. * @ Params:
  8. *
  9. * __bitmap: Zeiger auf unsere Bitmap
  10. * __width: Breite in Pixel
  11. * __height: Höhe in Pixeln
  12. *
  13. * /
  14. / / $ Pixel wird ein Array mit den Werten der einzelnen Pixel
  15. explode ( "," , $_POST [ 'pixels' ] ) ; $ Pixel = explode ( "", $ _POST [ 'Punkte']);
  16. $_POST [ 'width' ] ; $ Width = $ _POST [ 'width'];
  17. $_POST [ 'height' ] ; $ Height = $ _POST [ 'height'];
  18. / / Create the image - @ vermeiden, Fehler
  19. imagecreatetruecolor ( $width , $height ) ; $ Image = @ imagecreate ($ width, $ height);
  20. / / Write the Pixel entlang der Länge und Höhe
  21. 0 ; $ Index = 0;
  22. $x = 0 ; $x <= $width ; $x ++ ) { for ($ x = 0; $ x <= $ width, $ x + +) (
  23. $y = 0 ; $y <= $height ; $y ++ ) { for ($ y = 0; $ y <= $ height, $ y + +) (
  24. hexdec ( "0x" . substr ( $pixels [ $index ] , 2 , 2 ) ) ; $ R = hexdec ( "0x". Substr ($ Punkte [$ index], 2, 2));
  25. hexdec ( "0x" . substr ( $pixels [ $index ] , 4 , 2 ) ) ; $ G = hexdec ( "0x". Substr ($ Punkte [$ index], 4, 2));
  26. hexdec ( "0x" . substr ( $pixels [ $index ] , 6 , 2 ) ) ; $ B = hexdec ( "0x". Substr ($ Punkte [$ index], 6, 2));
  27. imagecolorallocate ( $image , $r , $g , $b ) ; $ Color = imagecolorallocate ($ image, $ r, $ g, $ b);
  28. $image , $x , $y , $color ) ; imagesetpixel ($ image, $ x, $ y, $ color);
  29. $ Index + +;
  30. )
  31. )
  32. / / Write Bild (JPG - aber Sie können ein anderes Format verwenden) auf der Festplatte / Server
  33. $image , "immagine.jpg" ) ; imagejpeg ($ image, "Bild.jpg");
  34. $image ) ; // libero tutto imagedestroy ($ image); / / free alle

Wir werden in Kürze auf das Thema zurück und schlägt andere Lösungen ... ;)

Hinweise und WEBGRAF:

Verwandte Post

War dieser Artikel hilfreich?: Per nientePocoAbbastanzaMoltoMoltissimo
Loading ... Loading ...

4 Kommentare zu "Wie Speichern von Bildern in Flash CS3"

  1. getAvatar 1,0
    08 ott, 2008 werutzb:

    Hallo!

    Ich möchte besser meine SQL-Fähigkeiten.
    Ich werde rot wirklich viele SQL-Bücher und möchte
    Lesen Sie mehr über SQL für meine Tätigkeit als MySQL-Datenbank-Manager.

    Was würden Sie empfehlen?

    Danke,
    Werutz

  2. getAvatar 1,0
    13. Januar 2009 Abramovicl:

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

  3. getAvatar 1,0
    21. Juli 2009 Uday:

    Der obige Code ist workiing perfectelly, wenn wir die SWF und Höhe exportieren, mit weniger als 400 Pixel. Wenn wir die Höhe und mit mehr als 400 Pixel dann ist es nicht.

    Können Sie mir bitte sagen, wie kann ich sparen mehr als 500x500 Pixel Bitmap aus Flash?

  4. getAvatar 1,0
    03 Aug, 2009 Giovambattista Fazioli:

    @ Uday: Bitte überprüfen Sie Ihre PHP-Einstellungen. Könnte einige Timeout zu niedrig. Um die Bitmap-Pixel an den Server im POST-Modus schicken kann mehrere Minuten in Anspruch nehmen.

Leave a comment

TAG XHTML Berechtigungen: <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 [as][/as]           // Actionscript [css][/css]         // CSS Style Sheet [html][/html]       // HTML [js][/js]           // Javascript [objc][/objc]       // Objective-C [php][/php]         // PHP [sql][/sql]         // SQL