Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Obrysowanie obrazka
dragossani
post
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)
Go to the top of the page
+Quote Post
uboottd
post
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.
Go to the top of the page
+Quote Post
kurtz
post
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]
Go to the top of the page
+Quote Post
kwiateek
post
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.
Go to the top of the page
+Quote Post
uboottd
post
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
Go to the top of the page
+Quote Post
kwiateek
post
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)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 08:23