Zapisywanie obrazów w Flash CS3

Poniedziałek, 31 marca 2008

Flash CS3 z wykorzystaniem Bitmap jest tak udoskonalone, że chcesz po prostu stworzyć małe Paint. Mamy już mały jak Paint (patrz Tworzenie Paint in Flash CS3 Malarz: prosta aplikacja do rysowania w Flash Pro CS3) zdolnej do wspierania "anuluj" - skasować funkcję, dzięki konkretnego wykorzystania Warstwa Shape i Bitmap Mówimy, że teraz Flash (w odróżnieniu od "Flex") nie pozwalają na ich kodowania (typu JPG lub PNG) będzie automatycznie zapisywać obrazy Bitmap. Ale można obejść przeszkodę przy użyciu skryptów po stronie serwera i możliwość wysyłania danych do Flash w POST.

Teoria

W artifizio, że możemy użyć to: zapoznanie się z danymi zawartymi w Bitmap pixel na piksel, przekształcić je w szesnastkowym i wysłać je do po stronie PHP (w tym przykładzie wykorzystać PHP i GD Library, aby utworzyć rzeczywiście l ' obrazu, ale inne metody są równie skuteczne).

Teraz mówimy, że tylko neo tej techniki jest bardzo powolny, co najmniej z Bitmap wystarczająco duża (próbowałem z Bitmap 640 x 300)!

Ponadto, jak zobaczymy w ActionScript kodu, nie można kontrolować postęp transmisji, ale tylko w przypadku zakończenia wszystkich prac; ActionScript + PHP.

W PRAKTYCE

Wydał Bitmap do korzystania z algorytmu może być następująca:

ActionScript:
  1. / **
  2. ** @ Prototyp: 0.0.1
  3. ** @ Autor: Undo = =
  4. ** @ E-mail: @ g.fazioli undolog.com
  5. ** @ Web: http://www.undolog.com
  6. **
  7. ** @ Parametry:
  8. **
  9. ** __bitmap: Wskaźnik do naszej bitmapy
  10. ** __width: Szerokość w pikselach
  11. ** __height: Wysokość w pikselach
  12. **
  13. * /
  14. / / Kopiuj do czytania - tego można uniknąć
  15. BitmapData ( __width, __height ) ; var sbmp: BitmapData = new BitmapData (__width, __height);
  16. __bitmap ) ; sbmp. remis (__bitmap);
  17. / /
  18. = new Array ( ) ; var pikseli: 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 yy: UINT = 0; rr <= __height; yy + +) (
  21. sbmp. getPixel32 ( xx, yy ) . toString ( 16 ) ) ; pikseli. push (sbmp. getPixel32 (xx, yy). toString (16));
  22. )
  23. )
  24. / /
  25. URLRequest ( "http://miodominio.com/savebitmap.php" ) ; var urlreq: URLRequest = new URLRequest ( "http://miodominio.com/savebitmap.php");
  26. URLVariables ( ) ; var urlpar: URLVariables = new URLVariables ();
  27. 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 ( "Gotowe");
  32. )
  33. );
  34. / /
  35. ( ) ; urlpar. pikseli = pikseli. toString ();
  36. urlpar. __height = wysokość;
  37. urlpar. __width = szerokość;
  38. urlreq. urlpar = data;
  39. ; urlreq. method = URLRequestMethod. POST;
  40. urlreq ) ; urlldr. obciążenia (urlreq);

Jak możemy użyć kodu PHP:

PHP:
  1. / **
  2. ** @ Prototyp: 0.0.1
  3. ** @ Autor: Undo = =
  4. ** @ E-mail: @ g.fazioli undolog.com
  5. ** @ Web: http://www.undolog.com
  6. **
  7. ** @ Parametry:
  8. **
  9. ** __bitmap: Wskaźnik do naszej bitmapy
  10. ** __width: Szerokość w pikselach
  11. ** __height: Wysokość w pikselach
  12. **
  13. * /
  14. / / $ Pikseli staje się tablica z wartościami każdego piksela
  15. ( "," , $_POST [ 'pixels' ] ) ; $ Pikseli = explode ( "", $ _POST [ 'pikseli']);
  16. [ 'width' ] ; $ Width = $ _POST [ 'szerokość'];
  17. [ 'height' ] ; $ Height = $ _POST [ 'wysokość'];
  18. / / Utwórz obraz - @ unikaniu błędów problem
  19. $width , $height ) ; $ Image = @ imagecreatetruecolor ($ width, $ height);
  20. / / Napisz pikseli na całej długości i wysokości
  21. ; $ Indeks = 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. ( "0x" . substr ( $pixels [ $index ] , 2 , 2 ) ) ; $ R = hexdec ( "0x". Substr ($ pikseli [$ indeks], 2, 2));
  25. ( "0x" . substr ( $pixels [ $index ] , 4 , 2 ) ) ; $ G = hexdec ( "0x". Substr ($ pikseli [$ indeks], 4, 2));
  26. ( "0x" . substr ( $pixels [ $index ] , 6 , 2 ) ) ; $ B = hexdec ( "0x". Substr ($ pikseli [$ indeks], 6, 2));
  27. $image , $r , $g , $b ) ; $ Kolor = imagecolorallocate ($ image, $ r, $ g, $ b);
  28. , $x , $y , $color ) ; imagesetpixel ($ image, $ x, $ y, $ kolor);
  29. $ Index + +;
  30. )
  31. )
  32. / / Zapis obrazu (w JPG - ale można użyć innego formatu) na dysku / serwera
  33. , "immagine.jpg" ) ; imagejpeg ($ image, "image.jpg");
  34. ) ; // libero tutto imagedestroy ($ image); / / wszystkie wolne

Wracaj szybko na zaproponowanie innych rozwiązań ... ;)

Referencje i webgrafia:

Powiązane Post

A komentarz na temat "Jak zapisać obrazy w Flash CS3"

  1. getAvatar 1.0 Środa, 08 października 2008 r. 03:48
    werutzb powiedział:

    Cześć!

    Chciałbym lepiej się moje możliwości SQL.
    Naprawdę czerwony SQL wielu książek i chciałby
    Więcej informacji na temat SQL dla mojej pracy jako menedżera bazy danych MySQL.

    Co mógłby Pan polecić?

    Dzięki,
    Werutz

    Odpowiedź Cytat

Zostaw komentarz

TAG XHTML <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> href="" <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Użyj <pre> umieszczenie kodu