![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Przyjaciele php.pl Postów: 398 Pomógł: 0 Dołączył: -- Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Był tu temat na temat obrysowywania obrazka ale moje manipulacje z przenoszeniem tematu nie wyszły mu na zdrowie. :oops:
Pytanie brzmiało: jak obrysować w php obrazek linią o grubości jednego piksela w konkretnym kolorze? Zaznaczam, że autorowi chodzi o GD, a nie style. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
Pisze z pamieci w pseudocodzie bo akurat nie mam tego jak sprawdzic na zywym phpie z gd:
Kod $w = szerokosc($pic_old);
$h = wysokosc($pic_old); $pic = nowy_obrazek($w,$h); kopiuj_fragment($pic_old,$pic,0,0,$w,$h); $col = rezerwuj_kolor($pic,#rgb); rysuj_linie($pic,0,0,$w-1,0,$col); rysuj_linie($pic,0,$h-1,$w-1,$h-1,$col); rysuj_linie($pic,0,0,0,$h-1,$col); rysuj_linie($pic,$w-1,0,$w-1,$h-1,$col); zapisz_jpg($pic); Jesli komus zalezy, moge gdzies dorwac php z GD i zrobic przyklad dokladnie. |
|
|
![]()
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 786 Pomógł: 0 Dołączył: 18.03.2002 Skąd: Wroclaw/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
troche inne myslenie ;)
juz mniej pseudokod ale nie testowane[php:1:9532c8b127]<?php // pobieramy rozmiary starego obrazka list($w, $h) = getimagesize("stary.jpg"); // tworzymy obrazek nieco wiekszy $obrazek = imagecreate($w+2, $h+2); // zapelniamy $obrazek kolorem $niebieski = colorallocate($obrazek, 0, 0, 255); imagefill($obrazek, $w+2, $h+2, $niebieski); // wrzucamy w srodek stary obrazek $obrazek_stary = imagecreatefromjpeg("stary.jpg"); imagecopy($obrazek, $obrazek_stary, 1, 1, 0, 0, $w, $h); // i pokazujemy obrazek header("Content-type: image/jpeg"); imagejpeg($obrazek); ?>[/php:1:9532c8b127] |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 223 Pomógł: 0 Dołączył: 13.01.2003 Skąd: 3rd ball of mud behind a big ball of burning gas Ostrzeżenie: (0%) ![]() ![]() |
Wyprobowalem zarowno jeden jak i drugi przyklad jednak nie dzialaja. Konflik wystepuje przy imagecopy (u mnie na w2k pojawia sie blad php.exe) na innych serwerach (probowalem na kilku) otrzymuje informacje od routera ze dokument na zerowy rozmiar czyli skrypt najprawodpodobniej nie zostal pomyslnie wykonany. Poza colorallocate na imagecolorallocate w przykladnie kurtz'a nic nie poprawialem.
Jak mozesz uboottd to przedstaw caly kod. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
Po malym usprawnieniu przy okazji:
Kod $pic = imagecreatefromjpeg("dentysta.jpg");
$kol = imagecolorallocate ($pic, 255, 0, 255); for ($i=0; $i<5 /*szerokosc ramki*/; $i++) imagerectangle ($pic,$i,$i,imagesx($pic)-$i-1,imagesy($pic)-$i-1,$kol); imagejpeg($pic); testowane na php4.3.1 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 223 Pomógł: 0 Dołączył: 13.01.2003 Skąd: 3rd ball of mud behind a big ball of burning gas Ostrzeżenie: (0%) ![]() ![]() |
Problem rozwiazalem brakowalo chyba headera:
[php:1:478599001f]<?php Header("Content-type: image/jpeg"); list($w, $h) = getimagesize("stary.jpg"); $im = imagecreatefromjpeg("stary.jpg"); $black = imagecolorallocate($im,0,0,0); imageline($im,0,0,$w-1,0,$col); imageline($im,0,$h-1,$w-1,$h-1,$col); imageline($im,0,0,0,$h-1,$col); imageline($im,$w-1,0,$w-1,$h-1,$col); Imagejpeg($im); ImageDestroy($im); ?>[/php:1:478599001f] uboottd dzieki wyprzediles mnie z postem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 08:23 |