Käytän seuraavaa skriptiä, joka luo tekstin kuvan päälle kirjoittaessa testi.php?text=text.
//testi.php <?php header("Content-type: image/png"); $string = $_GET['text']; $im = imagecreatefrompng("buttoni.png"); $orange = imagecolorallocate($im, 220, 210, 60); $px = (imagesx($im) - 7.5 * strlen($string)) / 2; imagestring($im, 3, $px, 9, $string, $orange); imagepng($im); imagedestroy($im); ?>
Olen nähnyt muilla sivuilla generaattoreita yms. jotka luovat .png kuvan, kun
formiin kirjoitetaan jotain. Kuinka on mahdollista tehdä tämän skriptin
pohjalta tsydeemi, joka luo uuden ja päivittyvän .png kuvan ?
Kun formiin kirjoitettua tekstiä muuttaa, pitäisi myös .png kuva
päivittyä. Tehdäänkö tämä jotenkin niin, että korvataan vanha png kuva uudella ?
Tuossa omassa lähettämässäni skriptissä skripti ei luo tallentuvaa .png kuvaa, vaan kuva on ns. ".php" tiedostona.
Valaiskaahan vähäsen. ;)
Sun täytyy vaan uudelleenkirjoittaa se .png tiedosto.
Juu, mutta tuo lähettämäni skripti ei tallenna servelille .png kuvaa,
jonka päällä on formista päivittyvä teksti. Kuinka tämä tehdään tuolla Gd libraryllä ?
Antamalla imagepng-funktiolle toisena parametrina tiedostonimen:
... imagepng($im, "uusibuttoni.png"); ...
JTS kirjoitti:
Antamalla imagepng-funktiolle toisena parametrina tiedostonimen:
... imagepng($im, "uusibuttoni.png"); ...
Muuten hyvä, mutta nyt heittää läjäpäin erroria.
Johtuukos se
$im = imagecreatefrompng("buttoni.png");
tästä? Tuohan määrittää kuvalle taustan.
Sehän riippuu ihan vain siitä, mitä erroreita se heittää läjäpäin. Erroreissa mainitaan kyllä virhe ja sen rivinumero.
Heittäisikö se siksi erroreita että skriptilläsi ei ole oikeuksia kirjoittaa kyseiseen hakemistoon?
Jokin tässä nyt mättää, koodi:
<?php header("Content-type: image/png"); $string = $_GET['text']; $im = imagecreatefrompng("buttoni.png"); $orange = imagecolorallocate($im, 220, 210, 60); $px = (imagesx($im) - 7.5 * strlen($string)) / 2; imagestring($im, 3, $px, 9, $string, $orange); imagepng($im, "uusibuttoni.png"); imagedestroy($im); ?>
Tämmöistä heittää:
Warning: Cannot modify header information - headers already sent by (output started at /home/ftp/tumcaa/testii/gd_testi2.php:2) in /home/ftp/tumcaa/testii/gd_testi2.php on line 4 Warning: imagecreatefrompng(buttoni.png) [function.imagecreatefrompng]: failed to open stream: No such file or directory in /home/ftp/tumcaa/testii/gd_testi2.php on line 6 Warning: imagecolorallocate(): supplied argument is not a valid Image resource in /home/ftp/tumcaa/testii/gd_testi2.php on line 7 Warning: imagesx(): supplied argument is not a valid Image resource in /home/ftp/tumcaa/testii/gd_testi2.php on line 8 Warning: imagestring(): supplied argument is not a valid Image resource in /home/ftp/tumcaa/testii/gd_testi2.php on line 9 Warning: imagepng(): supplied argument is not a valid Image resource in /home/ftp/tumcaa/testii/gd_testi2.php on line 10 Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/ftp/tumcaa/testii/gd_testi2.php on line 11
Mikä mättää ? :S
Ensimmäinen varoitus, headerit on jo lähetetty... Tosin tuo header-funktio on nyt täysin turha kun kerta et "tulosta" sitä imagea vaan tallennat. Toinen varoitus, imagecreatefrompng ei löytänyt tiedostoa "buttoni.png". Kaikki muut virheet sitten johtuvat tuosta, ettei image-resurssia voitu tehdä kun siihen tarvittavaa tiedostoa ei löytynyt.
Kiitän, nyt pelittää hyvin. : )
Aihe on jo aika vanha, joten et voi enää vastata siihen.