Portál AbcLinuxu, 4. prosince 2025 07:02
.
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.