Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][GD] crop zdjęcia, Jak skadrować zdjęcie bez efektu skalowania?
zolw83
post
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
 
Start new topic
Odpowiedzi (1 - 9)
erix
post
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.
Go to the top of the page
+Quote Post
zolw83
post
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
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
Go to the top of the page
+Quote Post
zolw83
post
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
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.
Go to the top of the page
+Quote Post
zolw83
post
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
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.
Go to the top of the page
+Quote Post
zolw83
post
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
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 12:41