Portál AbcLinuxu, 11. května 2025 04:48
header("Content-type: image/jpeg ");
imagepng($im);
Ale to mi nastaví i prohlížeč pro zobrazení obrázku a nemohu ho zobrazit v textu. Napadají mi jen prasárny jak to udělat, typu vložit stránku do stránky...
<img src="obrazek...
Ten obrázek můžeš vložit i inline zakódováním do Base64, ale moc často se to nedělá.
<?php $im = imagecreate(100,50) or die ('Error');//? $v = 0; if(isset($_GET['var'])) $v = (int) $_GET['var']; if(($v > 255)||($v < 0)) $v=128; $bgcolor = imagecolorallocate($im,$v,64,16); $c1 = imagecolorallocate($im,250,250,250); $c2 = imagecolorallocate($im,0,64,250); $c3 = imagecolorallocate($im,0,0,0); imagefilledellipse ($im,25,25,30,20,$c1); imageellipse ($im,25,25,30,20,$c3 ); imagefilledellipse($im,27,26,16,14,$c2); imageellipse($im,27,26,16,14,$c3); imagefilledellipse($im,27,26,8,10,$c3); imagecopy($im,$im,60,10,10,10,30,30); header ('Content-type: image/png'); imagepng($im); imagedestroy($im); exit();Soubor test.html (stránka používající obrázek) obsahuje:
<img src="./img.php?var=128" alt="Oka" title="Oka" width="100" height="50" />PS: Neplantat formáty obrázků!
…jak tam mozes dat data?Takto, ale nemyslím, že je to vhodné.
Na základě tvého příkladu, doporučuji se zamyslet nebo přečíst nějakou dokumentaci k html .
Kit ti psal, a je to z logiky věci jak funguje html - jsou v zásadě jen dvě možnosti jednu jsem už uvedl a druhá je zde.
Ukázka, dle mého nevhodná:<?php function getImage($v){ ob_start(); $im = imagecreate(100,50) or die ('Error'); if(($v > 255)||($v < 0)) $v=128; $bgcolor = imagecolorallocate($im,$v,64,16); $c1 = imagecolorallocate($im,250,250,250); $c2 = imagecolorallocate($im,64,128,250); $c3 = imagecolorallocate($im,0,0,0); imagefilledellipse ($im,25,25,30,20,$c1); imageellipse ($im,25,25,30,20,$c3 ); imagefilledellipse($im,27,26,16,14,$c2); imageellipse($im,27,26,16,14,$c3); imagefilledellipse($im,27,26,8,10,$c3); imagecopy($im,$im,60,10,10,10,30,30); imagepng($im); $imData = ob_get_contents(); ob_clean(); imagedestroy($im); echo 'data:image/png;base64,',base64_encode($imData); } ?> <img src="<?php getImage(128);?>" alt="Zapouzdřená oka" title="Zapouzdřená oka" width="100" height="50" />Samozřejmě lze ještě věc ↓ (příklad neřeší práva zápisu a cesty), ale je to variace na totéž.
<?php function getImage($v){ $im = imagecreate(100,50) or die ('Error'); if(($v > 255)||($v < 0)) $v=128; $filename = "oka_$v.png"; if(!file_exists($filename)){ $bgcolor = imagecolorallocate($im,$v,64,16); $c1 = imagecolorallocate($im,250,250,250); $c2 = imagecolorallocate($im,64,128,250); $c3 = imagecolorallocate($im,0,0,0); imagefilledellipse ($im,25,25,30,20,$c1); imageellipse ($im,25,25,30,20,$c3 ); imagefilledellipse($im,27,26,16,14,$c2); imageellipse($im,27,26,16,14,$c3); imagefilledellipse($im,27,26,8,10,$c3); imagecopy($im,$im,60,10,10,10,30,30); imagepng($im,$filename); imagedestroy($im); } echo $filename; } ?> <img src="<?php getImage(128);?>" alt="Množící se oka" title="Množící se oka" width="100" height="50" />Pokud daný obrázek je využitý opakovaně m;že to mít své opodstatnění. Ale má to záludnosti, napčíklad v tom, že klient bez kontroly může plnit disk (v tomto případě jen 255 souborů, pokud by měl možnost modifikovat parametr pro volání fce getImage())
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.