Autor Zpráva
Křeček
Profil
Mám tento kod:

<?php
/* funkcia na vykreslenie error obrázku
parameter - retazec, ktorý sa má vypísat ako ERROR */
function ErrorImage($string)
{
header ("Content-type: image/png");
$im = imagecreate (300, 50);
$background_color = imagecolorallocate ($im, 200, 200, 200);
$text_color = imagecolorallocate ($im, 233, 14, 91);
imagestring ($im, 5, 5, 5, "Chyba: ".$string, $text_color);
imagepng ($im);
exit();
}

/* ak subor existuje - získanie informácií o obrázku
$size[0] - šírka
$size[1] - výška
$size[2] - formát */
if(file_exists($_GET["filename"]))
$size=getimagesize($_GET["filename"]);

/* ak subor neexistuje - zobrazenie error oébrazku */
else
ErrorImage("Soubor neexistuje.");

/* ak zadaná šírka je menšia ako 1px, alebo nie je císlo, tak sa vykreslí error obrázok
to isté platí aj pre výsku */
if($_GET["width"]<5)
ErrorImage("Spatna sirka obrazku.");
if($_GET["height"]<5)
ErrorImage("Spatna vyska obrazku.");

/* pridelenie hlavicky */
switch($size[2])
{
case 1:
$type="gif";
header("Content-type: image/png");
break;
case 2:
$type="jpeg";
header("Content-type: image/jpeg");
break;
case 3:
$type="png";
header("Content-type: image/png");
break;

/* ak je to iný formát obrázku alebo to nie je obrázok, vykreslenie error obrázku */
default:
ErrorImage("Spatny typ obrazku.");
}

/* výpocet novej šírky a výšky */
$scale_width=$_GET["width"]/$size[0];
$scale_height=$_GET["height"]/$size[1];
$scale=($scale_width <= $scale_height ? $scale_width : $scale_height);
$new_width=ceil($scale*$size[0]);
$new_height=ceil($scale*$size[1]);

/* vytvorenie cielového a zdrojového obrázku */
$im = imagecreatetruecolor($new_width,$new_height);
switch($type)
{
case "gif":
$res_im=imagecreatefromgif($_GET["filename"]);
break;
case "jpeg":
$res_im=imagecreatefromjpeg($_GET["filename"]);
break;
case "png":
$res_im=imagecreatefrompng($_GET["filename"]);
break;
}

/* kopírovanie oblasti do cielového obázku */
imagecopyresampled($im, $res_im, 0, 0, 0, 0, $new_width+1, $new_height+1, $size[0], $size[1]);

/* zrušenie zdrojového obrázku */
imagedestroy($res_im);

/* výstup náhladu do browsera */
switch($type)
{
case "jpeg":
imagejpeg($im);
break;
case "gif":
case "png":
imagepng($im);
break;
}
?>

a potřeboval bych okolo toho výsledného obrázku vykreslit 1px bíle. Poradíte?
PAVEL PROCHAZKA.zde.cz
Profil *
Zdravím,
obalte funkci kreslicí obrátky, HTML tágem table a zde specifikujte velikost rámečku...
habendorf
Profil
PAVEL PROCHAZKA.zde.cz

To je nějaká sranda? Co třeba style="border: 1px solid #fff;" ?
PAVEL PROCHAZKA.zde.cz
Profil *
habendorf proc by to mela bejt sranda, php ti vygeneruje obrazek a ten umistis do tabulky ktera bude mejt okraj...
djlj
Profil
PAVEL PROCHAZKA.zde.cz
Nač tak složitě?
PAVEL PROCHAZKA.zde.cz
Profil *
djlj pac jiny zpusob neznam... :).
habendorf
Profil
No rvát někam naprosto nesmyslně tabulku kvůli tomu, abych získal border, to je fakt nářez :o)
Křeček
Profil
já chci, aby php obalilo ten obrázek bílou čarou 1px. protože je docela ted těžký to měnit, když mám na webu dost obrázků.
koudi
Profil
Křeček
Doporučuji podívat se na funkci imagerectangle.

PAVEL PROCHAZKA.zde.cz
Doporučuji podívat se na css.
shadyyx
Profil
no vypada to podobne jako kdyz se generuje validacni obrazek "captcha" - a i ten se musi pres neco vlozit do stranky.

Tvuj kod je jen ciste php ktere generuje obrazek, ale ten musis v jiny strance importnout... Vypada to jako by sis tvoril vlastni 401, 402, 403, 404 atd stranky, ze jo? Takze bud to ho vlozis v tabulce (jak psali vyse) a nebo taky ja uz se psalo, elementu, v kterym ho vlozis, nastavis style="border: 1px solid #FFF;".

Nic jinyho v tom neni...
koudi
Profil
shadyyx
Další, co to nepochopil. On chce v PHP přímo editovat ten obrázek, aby měl kolem sebe rámeček. Nechce to řešit přes html/css.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: