Lagring af billeder i Flash CS3

Mandag 31 marts, 2008

Med Flash CS3 bruger Bitmap er så forbedret, at du bare ønsker at skabe en lille Paint. Vi har allerede set, hvordan en lille Paint (se Opret en Paint i Flash CS3 Maler: simple ansøgning om tegning i Flash CS3 Pro) kan bære en "annullere" - slette-funktion, takket være en særlig anvendelse af lag Shape og Bitmap Vi siger nu, at Flash (i modsætning til Flex) ikke giver dem mulighed for kodning (type JPG eller PNG) vil automatisk gemme billeder Bitmap. Men du kan arbejde omkring forhindringen ved hjælp af en server-side scripting og evnen til at sende data til Flash i POST.

Teorien

Den artifizio at vi kan bruge er: læse data, der er indeholdt i en bitmap pixel for pixel, omdanne dem i hexadecimal og sende dem på for at skrive en PHP side (i dette eksempel udnytte PHP og GD Library at skabe faktisk l ' billede, men andre metoder er lige så effektive).

Vi siger nu, at den eneste neo af denne teknik er meget langsom, i hvert fald store nok Bitmap (Jeg forsøgte med en Bitmap 640 x 300)!

Desuden, som du vil se i Actionscript kode, du kan ikke styre udviklingen i transmission, men kun få tilfælde af færdiggørelse af arbejdet; Actionscript + PHP.

DEN PRAKSIS

Da en Bitmap at bruge algoritme kan være som følger:

Actionscript:
  1. / **
  2. ** @ Prototype: 0.0.1
  3. ** @ Forfatter: fortryde = =
  4. ** @ E-mail: @ g.fazioli undolog.com
  5. ** @ Web: http://www.undolog.com
  6. **
  7. ** @ Parametre:
  8. **
  9. ** __bitmap: Pointer til vores bitmap
  10. ** __width: Bredde i pixels
  11. ** __height: Højde i pixels
  12. **
  13. * /
  14. / / Kopiér til læsning - dette kunne være undgået
  15. BitmapData ( __width, __height ) ; var sbmp: BitmapData = new BitmapData (__width, __height);
  16. __bitmap ) ; sbmp. henlede (__bitmap);
  17. / /
  18. = 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 åå: UINT = 0; yy <= __height; åå + +) (
  21. sbmp. getPixel32 ( xx, yy ) . toString ( 16 ) ) ; pixel. 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 { funktion (e: Event): void (
  31. ' Completato' ) ; trace ( 'Udført');
  32. )
  33. );
  34. / /
  35. ( ) ; urlpar. pixels = pixels. toString ();
  36. urlpar. __height = højde;
  37. urlpar. __width = bredde;
  38. urlreq. urlpar = dato;
  39. ; urlreq. metode = URLRequestMethod. POST;
  40. urlreq ) ; urlldr. belastning (urlreq);

Hvordan kan vi bruge PHP kode:

PHP:
  1. / **
  2. ** @ Prototype: 0.0.1
  3. ** @ Forfatter: fortryde = =
  4. ** @ E-mail: @ g.fazioli undolog.com
  5. ** @ Web: http://www.undolog.com
  6. **
  7. ** @ Parametre:
  8. **
  9. ** __bitmap: Pointer til vores bitmap
  10. ** __width: Bredde i pixels
  11. ** __height: Højde i pixels
  12. **
  13. * /
  14. / / $ Pixels bliver et array med værdier for hver pixel
  15. ( "," , $_POST [ 'pixels' ] ) ; $ Pixels = eksplodere ( "", $ _POST [ 'pixels']);
  16. [ 'width' ] ; $ Bredde = $ _POST [ 'bredde'];
  17. [ 'height' ] ; $ Height = $ _POST [ 'højde'];
  18. / / Opret billedet - @ undgå fejltagelser spørgsmål
  19. $width , $height ) ; $ Image = @ imagecreatetruecolor ($ bredde, $ højde);
  20. / / Skriv pixels for hele længde og højde
  21. ; $ Index = 0;
  22. $x = 0 ; $x <= $width ; $x ++ ) { for ($ x = 0; $ x <= $ bredde; $ x + +) (
  23. $y = 0 ; $y <= $height ; $y ++ ) { for ($ y = 0; $ y <= $ højde; $ y + +) (
  24. ( "0x" . substr ( $pixels [ $index ] , 2 , 2 ) ) ; $ R = hexdec ( "0x". Substr ($ pixels [$ indeks], 2, 2));
  25. ( "0x" . substr ( $pixels [ $index ] , 4 , 2 ) ) ; $ G = hexdec ( "0x". Substr ($ pixels [$ indeks], 4, 2));
  26. ( "0x" . substr ( $pixels [ $index ] , 6 , 2 ) ) ; $ B = hexdec ( "0x". Substr ($ pixels [$ indeks], 6, 2));
  27. $image , $r , $g , $b ) ; $ Color = imagecolorallocate ($ image, $ r, $ g, $ b);
  28. , $x , $y , $color ) ; imagesetpixel ($ image, $ x, $ y, $ color);
  29. $ Indeks + +;
  30. )
  31. )
  32. / / Write billede (i JPG - men du kan bruge et andet format) på disken / server
  33. , "immagine.jpg" ) ; imagejpeg ($ image, "Billede.jpg");
  34. ) ; // libero tutto imagedestroy ($ image); / / fri alle

Kom tilbage om kort tid foreslå andre løsninger ... ;)

Referencer og webgrafia:

Related Post

En kommentar til "Hvordan gemmer billeder i Flash CS3"

  1. getAvatar 1.0 Onsdag 08 oktober, 2008 03:48
    werutzb sagde:

    Hej!

    Jeg vil gerne have bedre gøre mit SQL kapaciteter.
    Jeg virkelig rød SQL mange bøger og vil gerne
    Læs mere om SQL til mit erhverv som MySQL-database manager.

    Hvad ville du anbefale?

    Tak,
    Werutz

    Svar Quote

Efterlad en kommentar

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>

Brug <pre> at vedlægge kode