Avatar billede oldschool Nybegynder
12. november 2007 - 20:20 Der er 3 kommentarer og
1 løsning

PHP skriv til jpg

Hey

Jeg bruger en "Flash bitmap eksporter" fra sephiroth.it http://www.sephiroth.it/tutorials/flashPHP/print_screen/index.php og den fungerer, på flash siden, glimrende.

Så vidt jeg er kommet frem til, er den jpg man får frem i browseren en "temporary" fil gemt i php. Så mit store problem er at få php til at gemme "temporary" filen på serveren. Gerne med et nyt navn hver gang.

Håber der er en der kan hjælpe mig?

php scriptet der tager imod data fra flash ser således ud:

<?php


error_reporting(0);
/**
* Get the width and height of the destination image
* from the POST variables and convert them into
* integer values
*/
$w = (int)$_POST['width'];
$h = (int)$_POST['height'];

// create the image with desired width and height

$img = imagecreatetruecolor($w, $h);

// now fill the image with blank color
// do you remember i wont pass the 0xFFFFFF pixels
// from flash?
imagefill($img, 0, 0, 0xFFFFFF);

$rows = 0;
$cols = 0;

// now process every POST variable which
// contains a pixel color
for($rows = 0; $rows < $h; $rows++){
    // convert the string into an array of n elements
    $c_row = explode(",", $_POST['px' . $rows]);
    for($cols = 0; $cols < $w; $cols++){
        // get the single pixel color value
        $value = $c_row[$cols];
        // if value is not empty (empty values are the blank pixels)
        if($value != ""){
            // get the hexadecimal string (must be 6 chars length)
            // so add the missing chars if needed
            $hex = $value;
            while(strlen($hex) < 6){
                $hex = "0" . $hex;
            }
            // convert value from HEX to RGB
            $r = hexdec(substr($hex, 0, 2));
            $g = hexdec(substr($hex, 2, 2));
            $b = hexdec(substr($hex, 4, 2));
            // allocate the new color
            // N.B. teorically if a color was already allocated
            // we dont need to allocate another time
            // but this is only an example
            $test = imagecolorallocate($img, $r, $g, $b);
            // and paste that color into the image
            // at the correct position
            imagesetpixel($img, $cols, $rows, $test);
        }
    }
}

// print out the correct header to the browser
header("Content-type:image/jpeg");
// display the image
imagejpeg($img, "", 90);
?>

Mange tak :)
Avatar billede erikjacobsen Ekspert
12. november 2007 - 22:24 #1
http://php.net/imagejpeg  -  Du har angivet "" for filnavn, hvorved det skrives ud til skærmen. Så hvis du angiver et passende filnavn, så skulle det blive gemt på serveren.
Avatar billede oldschool Nybegynder
12. november 2007 - 22:54 #2
Tusind tak :)

Det virker sku!

Vil du ikke smide et svar?

Igen mange tak!
Avatar billede erikjacobsen Ekspert
12. november 2007 - 22:59 #3
Jeg samler slet ikke på point, tak. Svar selv, accepter eget svar.
Avatar billede oldschool Nybegynder
14. november 2007 - 22:20 #4
Oki, du har fået god karma istedet :)

Takker igen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester