Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][GD] crop zdjęcia
Forum PHP.pl > Forum > Przedszkole
zolw83
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
erix
Cytat
Nie wiem jak wykonać kadrowanie do tego przy zachowaniu proporcji.

Kadrowanie, czy skalowanie? Bo mieszasz pojęcia.
zolw83
Hej, kadrowanie do miniaturki.

Cytat(erix @ 12.08.2009, 11:39:33 ) *
Kadrowanie, czy skalowanie? Bo mieszasz pojęcia.
dr_bonzo
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).
zolw83
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?
erix
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.
zolw83
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]
erix
Nie idzie, tzn?

Poza tym, mówiłem coś o proporcjach.
zolw83
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.
taro
Ja bym polecał zajrzeć na stronę główną naszego kochanego portalu:

http://wortal.php.pl/phppl/wortal/artykuly..._ich_fragmentow
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.