Säästäminen kuvia Flash CS3

Maanantai, 31. maaliskuuta 2008

Flash CS3 käyttää Bitmap on niin parantunut, että haluat vain luoda pieniä Paint. Olemme jo nähneet, miten pieni Paint (ks. Luo Paint Flash CS3 Painter: yksinkertainen hakemus piirustus Flash CS3 Pro), joka kykenee tukemaan "peruuta" - poistaa toiminnon ansiosta tiettyyn käyttöön kerros Shape ja Bitmap Sanomme nyt, että Flash (toisin kuin Flex) ei salli niiden koodaus (tyyppi JPG-tai PNG) automaattisesti tallentaa kuvat Bitmap. Mutta voit kiertää esteen käyttämällä Server-side scripting ja kyky lähettää tietoja Flash Post.

Teoria

The artifizio, että voimme käyttää on: luettu sisältämiä tietoja on Bitmap pikseli on pikseli, muuttaa niitä heksadesimaaleina ja lähettää niitä lähettää PHP-sivu (tässä esimerkissä hyödyntää PHP ja GD-kirjasto luoda itse l? kuvan, mutta muut lähestymistavat ovat yhtä tehokkaita).

Sanomme nyt, että ainoa neo tämä tekniikka on erittäin hidas, ainakin Bitmap tarpeeksi suuri (olen yrittänyt kanssa Bitmap 640 x 300)!

Lisäksi, kuten voitte lukea ActionScript-koodia, et voi ohjata kehitystä lähetyksen, mutta vain siinä tapauksessa, että ne kaikki työhön; ActionScript + PHP.

Käytäntö

Kun otetaan huomioon Bitmap käyttää algoritmi voi olla seuraava:

ActionScript:
  1. / **
  2. ** @ Prototype: 0.0.1
  3. ** @ Kirjoittaja: undo =
  4. ** @ Sähköposti: @ g.fazioli undolog.com
  5. ** @ Web: http://www.undolog.com
  6. **
  7. ** @ Parametrit:
  8. **
  9. ** __bitmap: Pointer meidän Bitmap
  10. ** __width: Leveys pikseleinä
  11. ** __height: Korkeus pikseleinä
  12. **
  13. * /
  14. / / Kopioi lukemisessa - tämä voitaisiin välttää
  15. BitmapData ( __width, __height ) ; var sbmp: BitmapData = uusi BitmapData (__width, __height);
  16. __bitmap ) ; sbmp. piirtää (__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 vv: UINT = 0; yy <= __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 = uusi URLRequest ( "http://miodominio.com/savebitmap.php");
  26. URLVariables ( ) ; var urlpar: URLVariables = uusi URLVariables ();
  27. URLLoader ( ) ; var urlldr: URLLoader = uusi URLLoader ();
  28. / /
  29. Event. COMPLETE , urlldr. addEventListener (Event. COMPLETE
  30. e :Event ) : void { toiminto (e: Event): void (
  31. ' Completato' ) ; jäljittää ( "Tehty");
  32. )
  33. );
  34. / /
  35. ( ) ; urlpar. pikseliä = pikseliä. toString ();
  36. urlpar. __height = korkeus;
  37. urlpar. __width = leveys;
  38. urlreq. urlpar = päivämäärä;
  39. ; urlreq. method = URLRequestMethod. POST;
  40. urlreq ) ; urlldr. kuormitus (urlreq);

Kuinka voimme käyttää PHP-koodi:

PHP: stä:
  1. / **
  2. ** @ Prototype: 0.0.1
  3. ** @ Kirjoittaja: undo =
  4. ** @ Sähköposti: @ g.fazioli undolog.com
  5. ** @ Web: http://www.undolog.com
  6. **
  7. ** @ Parametrit:
  8. **
  9. ** __bitmap: Pointer meidän Bitmap
  10. ** __width: Leveys pikseleinä
  11. ** __height: Korkeus pikseleinä
  12. **
  13. * /
  14. / / $ Pikseleitä tulee jono kanssa arvot kunkin pikselin
  15. ( "," , $_POST [ 'pixels' ] ) ; $ Pikseliä = räjähtää ( "", $ _POST [ 'pikseliä']);
  16. [ 'width' ] ; $ Leveys = $ _POST [ 'leveys'];
  17. [ 'height' ] ; $ Korkeus = $ _POST [ 'korkeus'];
  18. / / Luo kuva - @ välttää virheitä kysymys
  19. $width , $height ) ; $ Image = @ imagecreatetruecolor ($ leveys, $ korkeus);
  20. / / Kirjoita kuvapistettä koko pituus ja korkeus
  21. ; $ Indeksi = 0;
  22. $x = 0 ; $x <= $width ; $x ++ ) { for ($ x = 0; $ x <= $ leveys; $ x + +) (
  23. $y = 0 ; $y <= $height ; $y ++ ) { for ($ y = 0; $ y <= $ korkeus; $ y + +) (
  24. ( "0x" . substr ( $pixels [ $index ] , 2 , 2 ) ) ; $ R = hexdec ( "0x". Substr ($ pikseliä [$ indeksi], 2, 2));
  25. ( "0x" . substr ( $pixels [ $index ] , 4 , 2 ) ) ; $ G = hexdec ( "0x". Substr ($ pikseliä [$ indeksi], 4, 2));
  26. ( "0x" . substr ( $pixels [ $index ] , 6 , 2 ) ) ; $ B = hexdec ( "0x". Substr ($ pikseliä [$ indeksi], 6, 2));
  27. $image , $r , $g , $b ) ; $ Color = imagecolorallocate ($ kuva, $ r, $ g, $ b);
  28. , $x , $y , $color ) ; imagesetpixel ($ kuva, $ x, $ y, $ väri);
  29. $-Indeksi + +;
  30. )
  31. )
  32. / / Kirjoita kuvan (JPG - mutta voit käyttää eri muodossa) levyllä / palvelin
  33. , "immagine.jpg" ) ; imagejpeg ($ kuva, "Kuva.jpg");
  34. ) ; // libero tutto imagedestroy ($ kuva); / / vapauttamaan kaikki

Tule takaisin pian ehdottaa muita ratkaisuja ... ;)

Viitteet ja webgrafia:

Teemat Post

A kommentti aiheesta "Miten tallentaa kuvat Flash CS3"

  1. getAvatar 1,0 Keskiviikko 08 lokakuuta 2008 klo 03:48
    werutzb sanoi:

    Hei!

    Haluaisin parempi esittää SQL-valmiuksia.
    Olen todella punainen SQL useita teoksia, ja haluaisin
    lue lisää SQL minun miehityksen mysql johtaja.

    Mitä te suosittelette?

    Kiitos,
    Werutz

    Vastaus Quote

Jätä kommentti

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

Käytä <pre> liittää koodi