Witaj, Gościu O nas | Kontakt | Mapa
Wortal Forum PHPEdia.pl Planeta Kubek IRC Przetestuj się!

Generowanie grafiki w PHP

Przykład 2: Manipulowanie rozmiarami obrazków i wycinanie ich fragmentów

We wszystkich poniższych przykładach będę posługiwał się obrazkiem zapisanym w katalogu w którym znajduje się nasz skrypt pod nazwą zdjecie.jpg o rozmiarach 500x375 px.

Listing 2. Manipulowanie rozmiarami obrazków i wycinanie ich fragmentów

<?php
header('Content-Type: image/jpeg');

$img = imagecreatefromjpeg('zdjecie.jpg');

$width = 300;
$height = 225;
$mini = imagecreatetruecolor($width,$height);

imagecopyresized($mini,    // uchwyt obrazka wynikowego
$img,                      // uchwyt obrazka źródłowego 
0,                         // współrzędna x punktu od którego zaczynamy nanoszenie
0,                         // współrzędna y punktu od którego zaczynamy nanoszenie
0,                         // współrzędna x punktu od którego zaczynamy kopiowanie
0,                         // współrzędna y punktu od którego zaczynamy kopiowanie
$width,                    // szerokość skopiowanego obrazka na obrazku wynikowym
$height,                   // wysokość skopiowanego obrazka na obrazku wynikowym
imagesx($img),             // szerokość obszaru kopiowanego z obrazka źródłowego
imagesy($img));            // wysokość obszaru kopiowanego z obrazka źródłowego

imagejpeg($mini, null, 70);
?>

Listing 2. Omówienie kodu

Użyte w powyższym kodzie funkcje, poza imagecopyresized() zostały omówione wcześniej, skupmy się więc tylko na tej.

imagecopyresized()

Jest to funkcja służąca do kopiowania i zmiany rozmiaru obrazka lub jego części w zależności od przekazanych parametrów, których lista przedstawia się następująco:

  • $dst_im uchwyt obrazka wynikowego
  • $src_im uchwyt obrazka źródłowego
  • $dst_x współrzędna x punktu od którego zaczynamy nanoszenie
  • $dst_y współrzędna y punktu od którego zaczynamy nanoszenie
  • $src_x współrzędna x punktu od którego zaczynamy kopiowanie
  • $src_y współrzędna y punktu od którego zaczynamy kopiowanie
  • $dst_w szerokość skopiowanego obrazka na obrazku wynikowym
  • $dst_h wysokość skopiowanego obrazka na obrazku wynikowym
  • $src_w szerokość obszaru kopiowanego z obrazka źródłowego
  • $src_h wysokość obszaru kopiowanego z obrazka źródłowego

Listing 2. Wynik działania kodu

Z racji, że parametrów jest dosyć dużo uznałem za stosowne przedstawienie kilku obrazków będących wynikiem manipulacji nimi:

imagecopyresized($mini, $img, 0, 0, 0, 0, $width, $height, imagesx($img), imagesy($img));

Wynik działania kodu z listingu 2:

imagecopyresized($mini, $img, 5, 5, 0, 0, 290, 215, imagesx($img), imagesy($img));
imagecopyresized($mini, $img, 0, 0, 140, 50, 800, 600, imagesx($img), imagesy($img));
imagecopyresized($mini, $img, 0, 0, 130, 0, 300, 70, 250, 125);imagecopyresized($mini, $img, 0, 75, 130, 120, 300, 75, 250, 125);imagecopyresized($mini, $img, 0, 155, 130, 240, 300, 75, 250, 125);

To by było na tyle, jeśli chodzi o kwestię manipulowania rozmiarami obrazków, na zakończenie warto wspomnieć jeszcze o funkcji imagecopyresampled(). Przyjmuje ona parametry identyczne jak imagecopyresized(), przy czym przeprowadza jeszcze interpolację.

Informacje na podobny temat:
Wasze opinie
Wszystkie opinie użytkowników: (3)
porównanie bibliotek
Wtorek 22 Luty 2011 5:15:46 pm - siutek <siutek_at_gmail.com>

Bedzie moze jakis artykul w niedalekiej przyszlosci na temat biblioteki ImageMagic?? uzywam obecnie GD, ale slyszalem sporo opinii że IM jest szybsza. Chcialbym poznac wady i zalety obu.

problem z wykresem
Poniedziałek 03 Styczeń 2011 7:17:11 pm - kroolic

już sobie poradziłem, okazało się że gdy miałem w .htaccess ustawione php_value display_errors 1 , to wtedy pokazuje informacje

Obrazek "http://www.adreswww.pl/wykres.php" nie może zostać wyświetlony, ponieważ zawiera błędy.

ustawienie php_value display_errors 0 , pokazuje wykres, nigdy bym na to nie wpadł, przez przypadek na to trafiłem, pozdrawiam

Przykład 3. Generowanie wykresów w PHP
Poniedziałek 03 Styczeń 2011 5:01:00 pm - kroolic <kroolic_at_op.pl>

Kod i artykuł przejrzysty, tego szukałem, tylko jeden problem z artykułem "Przykład 3. Generowanie wykresów w PHP" - chodzi o to że autor nie podał jak ma wyglądać grafika użyta do wykresów i przeglądarka wyrzuca błąd

Obrazek "http://www.strona.pl/kod.php" nie może zostać wyświetlony, ponieważ zawiera błędy.


dziwny błąd, kod na żywca skopiowany z artykułu. Jeśli to możliwe proszę o uzupełnienie artykułu. Dziękuję.

Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2017 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System