Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][GD] crop zdjęcia, Jak skadrować zdjęcie bez efektu skalowania?
zolw83
post 12.08.2009, 08:57:17
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 3.06.2008

Ostrzeżenie: (0%)
-----


Witam.
Mam kod do tworzenia miniatur w locie z pliku który jest dodawany przez formularz.
Wrzucanie i tak dalej działa jak trzeba.

Mam kłopot z odpowiednim kadrowaniem zdjęcia za pomocą GD.
Kadrowanie działa, ale widać efekt skalowania w miniaturce.

Nie wiem jak wykonać kadrowanie do tego przy zachowaniu proporcji.
Poniżej kod.

Kod
$img = imagecreatefromjpeg("grafika.jpg");
    $width  = imagesx($img);
    $height = imagesy($img);
    
    $height_mini = 50;
    $width_mini = 50;
    
    $img_mini = imagecreatetruecolor($width_mini, $height_mini);
    imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width  , $height);
    
    imagejpeg($img_mini, "grafika_mini.jpg", 80);
    imagedestroy($img);
    imagedestroy($img_mini);


Pozdrawiam
Marcin

Ten post edytował zolw83 12.08.2009, 08:59:01
Go to the top of the page
+Quote Post
erix
post 12.08.2009, 10:39:33
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Nie wiem jak wykonać kadrowanie do tego przy zachowaniu proporcji.

Kadrowanie, czy skalowanie? Bo mieszasz pojęcia.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
zolw83
post 12.08.2009, 11:13:40
Post #3





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 3.06.2008

Ostrzeżenie: (0%)
-----


Hej, kadrowanie do miniaturki.

Cytat(erix @ 12.08.2009, 11:39:33 ) *
Kadrowanie, czy skalowanie? Bo mieszasz pojęcia.
Go to the top of the page
+Quote Post
dr_bonzo
post 12.08.2009, 11:25:58
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Kadrowanie to wyciecie fragmentu wiekszego zdjecia, szczegoly sa zachowane ale calego obrazu nie widac.

Miniaturka to ten sam obraz tylko mniejszy, gdize nie widac szczegolow (przez zastosowanie skalowania).

Ten post edytował dr_bonzo 12.08.2009, 11:26:43


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
zolw83
post 12.08.2009, 11:50:59
Post #5





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 3.06.2008

Ostrzeżenie: (0%)
-----


Cytat(dr_bonzo @ 12.08.2009, 12:25:58 ) *
Kadrowanie to wyciecie fragmentu wiekszego zdjecia, szczegoly sa zachowane ale calego obrazu nie widac.

Miniaturka to ten sam obraz tylko mniejszy, gdize nie widac szczegolow (przez zastosowanie skalowania).



Czyli trzeba pierw zrobić małą fotkę, czyli zmniejszyć skalę np. o 50% i potem z tego wyciąć np. sam środek.
Ok, a jak wyciąć taki element?
Go to the top of the page
+Quote Post
erix
post 12.08.2009, 12:14:19
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Czyli trzeba pierw zrobić małą fotkę, czyli zmniejszyć skalę np. o 50% i potem z tego wyciąć np. sam środek.

Nie - imagecopyresampled, tylko musisz obliczyć proporcje wysokości do szerokości, aby nie było zdeformowane.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
zolw83
post 12.08.2009, 15:32:21
Post #7





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 3.06.2008

Ostrzeżenie: (0%)
-----


Dałem coś takiego, ale nie idzie:

Kod
[/b]
$img = imagecreatefromjpeg( "grafika.jpg" );
$szerokosc  = imagesx($img);
$wysokosc = imagesy($img);

$szerokosc_mini = 50;
$wysokosc_mini = 50;

$wspolrzednax = $szerokosc/2;
$wspolrzednay = $wysokosc/2;

$crop = imagecreatetruecolor($szerokosc_mini, $wysokosc_mini);
imagecopy ( $crop, $image, 0, 0, $wspolrzednax, $wspolrzednay, $szerokosc_mini, $wysokosc_mini );
imagejpeg($crop, "grafika_mini.jpg");
imagedestroy($crop);
[b]
Go to the top of the page
+Quote Post
erix
post 12.08.2009, 15:51:36
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Nie idzie, tzn?

Poza tym, mówiłem coś o proporcjach.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
zolw83
post 13.08.2009, 09:25:49
Post #9





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 3.06.2008

Ostrzeżenie: (0%)
-----


hej.
Wykorzystałem tą klasę:

http://www.verot.net/php_class_upload.htm

Pierw tworze duży obrazek potem z dużego mały.
Pozdro.
Go to the top of the page
+Quote Post
taro
post 13.08.2009, 09:34:34
Post #10





Grupa: Zarejestrowani
Postów: 58
Pomógł: 5
Dołączył: 12.12.2008

Ostrzeżenie: (0%)
-----


Ja bym polecał zajrzeć na stronę główną naszego kochanego portalu:

http://wortal.php.pl/phppl/wortal/artykuly..._ich_fragmentow
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 6.07.2025 - 02:19