Kuvafunktiot PHP:ssä (GD)
Mureakuha
PHP:llä pystyy käsittelemään kuvia kätevästi GD-kirjaston avulla.
Uuden kuvan luominen
Uuden kuvan voit luoda funktiolla imagecreate(), tai vaihtoehtoisesti funktiolla imagecreatetruecolor(), jos käsitellään esim. valokuvia.
$kuva = imagecreate(150, 30); // Luodaan kuva jonka koko on 150x30 pikseliä $bg = imagecolorallocate($kuva, 255, 255, 255); // Luodun kuvan taustaväri (val) $teksti = imagecolorallocate($kuva, 255, 0, 0); // Teksin väri (pun) imagestring($kuva, 2, 0, 0, "Hello, world!!", $teksti); // Kirjoitetaan kuvaan header("Content-type: image/png"); imagepng($kuva); // Luodaan kuva selaimelle imagedestroy($kuva); // Poistetaan kuva muistista
Yllä esimerkki imagecreate() funktion käytöstä.
Kuvan luominen tiedostosta
Kuvan pystyy luomaan myös tiedostosta. Eri kuvaformaateille on eri funktiot. Yleisimmät PHP:ssä käytettävät funktiot kuvan luomiseen tiedostosta ovat imagecreatefromjpeg(), imagecreatefromgif() sekä imagecreatefrompng().
Funktio getimagesize() osaa kertoa myös kuvan tyypin, josta voidaankin soveltaa funktio, joka luo uuden kuvan käyttäen oikeaa funktiota:
function imagecreatefromfile($filu) { if (file_exists($filu)) { $tiedot = getimagesize($filu); $tiedot = $tiedot[2]; if ($tiedot == 1) // GIF return imagecreatefromgif($filu); elseif ($tiedot == 2) // JPEG return imagecreatefromjpeg($filu); elseif ($tiedot == 3) // PNG return imagecreatefrompng($filu); else // Joku muu / ei kuva return false; } else return false; }
Esimerkki kuvan koon muuttamisesta:
$alkup = imagecreatefromjpeg("valokuva.jpeg"); // Luodaan kuva tiedostosta $uus = imagecreatetruecolor(300,400); imagecopyresampled($uus,$alkup,0,0,0,0,300,400,imagesx($alkup),imagesy($alkup)); header("Content-type: image/jpeg"); imagejpeg($uus); // Tulostetaan kuva selaimelle imagedestroy($uus); // Poistetaan kuva muistista
Geometriset kuviot
PHP:ssa on omat funktiot myös geometrisille kuvioille. Funktiolla imageline() pystyt piirtämään viivan kuvaan jonka olet luonut imagecreate() funktiolla.
$kuva = imagecreate(100,100); // Luodaan kuva $bg = imagecolorallocate($kuva, 255, 255, 255); $viiva = imagecolorallocate($kuva, 0, 0, 255); // Viivan väri imageline($kuva, 0, 0, 100, 100, $viiva); // Piirretään viiva header("Content-type: image/png"); imagepng($kuva); // Luodaan kuva imagedestroy($kuva); // Poistetaan kuva muistista
Funktiolla imagerectangle() voit piirtää suorakulmion kuvaan.
$kuva = imagecreate(100,100); // Luodaan kuva $bg = imagecolorallocate($kuva, 255, 255, 255); $kulma = imagecolorallocate($kuva, 0, 0, 0); // Viivan väri imagerectangle($kuva, 0, 0, 99, 99, $kulma); // Piirretään suorakulmio header("Content-type: image/png"); imagepng($kuva); // Luodaan kuva imagedestroy($kuva); // Poistetaan muistista
Funktiolla imageellipse() voit piirtää ellipsin kuvaan. Huomaa: Funktio on lisätty vasta PHP:n versioon 4.0.6 ja vaatii myös GD:n kirjaston 2.0.2
$kuva = imagecreate(400, 300); // Luodaan kuva $bg = imagecolorallocate($kuva, 255, 255, 255); $ellipsi = imagecolorallocate($kuva, 255, 0, 0); // Viivan väri imageellipse($kuva, 200, 150, 300, 200, $ellipsi); // Piirretään ellipsi header("Content-type: image/png"); imagepng($kuva); // Luodaan kuva imagedestroy($kuva); // Poistetaan kuva muistista
| Tämä artikkeli on tynkä. Voit auttaa Kuhaa täydentämällä tämän sivun tietoja. |
