Witam. Mam pytanie jak za pomocą html'a, lub php, mając grafikę w postaci prostokąta, zaokrąglić go?
0
0
nie bardzo rozumiem - raczej niemożliwe albo w przypadku php - bardzo trudne ale może to jakoś lepiej wytłumacz
0
Adamo napisał(a)
nie bardzo rozumiem - raczej niemożliwe albo w przypadku php - bardzo trudne ale może to jakoś lepiej wytłumacz
Hmmm... Mam obrazek, powiedzmy o wymiarach 80x80.
Rzecz jasna jest to kwadrat. A ja chcę, żeby jego wierzchołki były zaokrąglone. Niestety muszę to zrobić programowo.
0
Skrypt wcale nie jest taki trudny do napisania. Jeżeli chcesz możesz bazować na moim. Nie zaokrągla rogów, ale robi gradientowe przejście między kolorem przekazanym jako parametry R,G,B a obrazkiem.
Wygląda to tak
- obrazek wejściowy
- wynik skryptu
A tak wygląda skrypt który to generuje. Używaj dowoli.
<?
header("Content-type: image/jpeg");
header("Last-Modified: Mon, 26 Jul 1997 05:00:00 GMT");
if (!isset($directory))
$directory = "images/";
if (file_exists($directory.$plik))
{
$org = imagecreatefromjpeg($directory.$plik);
$s_org = imagesx($org);
$w_org = imagesy($org);
$wmin = 200;
$hmin = 150;
if ($s_org / $w_org > $wmin / $hmin)
{
$s_min = $wmin;
$w_min = $wmin * $w_org / $s_org;
}
else
{
$s_min = $hmin * $s_org / $w_org;
$w_min = $hmin;
}
$min_ = imagecreatetruecolor($s_min, $w_min);
imagecopyresized($min_, $org, 0, 0, 0, 0, $s_min, $w_min, $s_org, $w_org);
imagedestroy($org);
if (!isset($R)) $R = 253;
if (!isset($G)) $G = 254;
if (!isset($B)) $B = 255;
for ($a=0; $a<$s_min;$a++)
for ($b=0; $b<10;$b++)
{
$colort = imagecolorallocatealpha ($min_, $R,$G,$B,12*$b);
imagesetpixel($min_,$a,$b,$colort);
imagesetpixel($min_,$a,$w_min-$b,$colort);
}
for ($a=0; $a<$w_min;$a++)
for ($b=0; $b<10;$b++)
{
$colort = imagecolorallocatealpha ($min_, $R,$G,$B,12*$b);
imagesetpixel($min_,$b,$a,$colort);
imagesetpixel($min_,$s_min-$b,$a,$colort);
}
imagejpeg($min_);
imagedestroy($min_);
}
else
{
$org = imagecreatefromjpeg("img/brakpliku.jpg");
imagejpeg($org);
}
?>