• logo_cipsoft
    Nowe serwery zostały otwarte 19 Lut 2025:
    Noctalia (Open PvP) Ignitera (Open PvP) us_logo Xybra (Open PvP)

-Średni PHP - obr?bka zdj??

Status
Zamknięty.

Xay

Active User
Dołączył
Luty 9, 2010
Posty
135
Liczba reakcji
12
poradnik mojego autorstwa

1. Za?adowanie obrazka

Robimy to jedn? prost? linijk?, jednak jest ona zale?na od formatu obrazka.

PHP:
$img = imagecreatefromjpeg("obrazek.jpg");

fromjpeg - tak, w?a?nie o to chodzi. Wpisujemy r?wnie? tutaj format pliku, z jedn? r??nic? oraz ograniczeniami:
fromjpeg - dla .jpg oraz .jpeg (nie zapomnie?!)
fromgif - dla .gif
frompng - dla .png
frombmp - dla .bmp

2. Nag??wek rzecz ?wi?ta!

Aby nasz obrazek ukaza? si? odwiedzaj?cemu stron?, nie mo?emy zapomnie? o nag??wku, bez kt?rego po prostu nie b?dzie dzia?a? (dostaniemy w zamian mas? b??d?w)

PHP:
$img = imagecreatefromjpeg("obrazek.jpg");
header('Content-Type: image/jpeg');
imagejpeg($img, null, 100);

Tutaj r?wnie? nie wolno nam zapomnie? o rozszerzeniu obrazka.

3. Zmniejszanie obrazka

Prosta sprawa. Przejd?my bezpo?rednio do skryptu.

PHP:
$img = imagecreatefromjpeg("obrazek.jpg");
$width = 200;
$height = 200;
$smallimg = imagecreatetruecolor($width, $height);
imagecopyresized($smallimg, $img, 0, 0, 0, 0, $width, $height, imagesx($img), imagesy($img));
header('Content-Type: image/jpeg');
imagejpeg($img, null, 100);

Jak widzimy, funkcja pomniejszaj?ca wymaga ca?ej masy parametr?w, jednak nie jest ona tak straszna, jak si? wydaje. Wystarczy kilka prostych ?wicze? na obrazkach i ju? dochodzimy do wprawy.

4. Filtry

Filtry pozwalaj? nam na zmian? wygl?du obrazka. G??wnie chodzi o zmian? koloru, wyostrzenie kontur, itd.

IMG_FILTER_BRIGHTNESS z jednym parametrem - rozja?nienie obrazka
IMG_FILTER_COLORIZE z trzema parametrami - zmiana kolor?w obrazka
IMG_FILTER_CONTRAST z jednym parametrem - zmiana kontrastu obrazka
IMG_FILTER_EDGEDETECT - bardzo ciekawy efekt, kt?rego nie potrafi? za bardzo opisa?. Wyostrza on kontury (staj? si? ciemne), natomiast reszta obrazka pogr??a si? w szaro?ci
IMG_FILTER_EMBOSS - to co wy?ej, jednak kraw?dzie sprawiaj? widok tr?jwymiarowych
IMG_FILTER_GAUSSIAN_BLUR - proste rozmycie gaussowskie
IMG_FILTER_MEAN_REMOVAL - to r?wnie? ci??ko jest wyt?umaczy?... powoduje, ?e obrazek wydaje si?, jakby by? bardzo zniszczony, a p??niej zeskanowany
IMG_FILTER_NEGATE - odwr?cenie kolor?w
IMG_FILTER_SELECTIVE_BLUR - zn?w rozmycie, naprawd? nie wiem czym si? r??ni
IMG_FILTER_GRAYSCALE - zmiana obrazka na czarno-bia?y

Lecz jak ich u?y??

PHP:
$img = imagecreatefromjpeg("obrazek.jpg");
imagefilter($img, IMG_FILTER_COLORIZE, 20, -10, 40);

Poda?em tutaj przyk?ad dla filtru z trzema parametrami. Je?eli wybierzemy jaki?, kt?ry ich nie ma - po prostu kasujemy te liczby.

5. Obracanie obrazka

Aby u?y? tej funkcji musimy najpierw ustali? kolor t?a (kt?re pozostanie w miejscu niegdy? zajmowanym przez obrazek)

PHP:
$img = imagecreatefromjpeg("obrazek.jpg");
$color = imagecolorallocate($img, 0, 0, 0);
$img = imagerotate($img, 45, $color);
header('Content-Type: image/jpeg');
imagejpeg($img, null, 100);

Wymagane jest wprowadzenie kolor?w w RGB. W tym wypadku kolor t?a b?dzie czarny, a obrazek obr?cony o 45 stopni (zgodnie ze wskaz?wkami zegara).

6. Tekst

Oto ju? ostatni punkt tutoriala, dotycz?cy wprowadzania tekstu na obrazek. Jest to r?wnie prosta sprawa, jak z obracaniem obrazka, jednak tutaj trzeba jeszcze poda? gdzie ma si? rozpocz?? wypisywanie tekstu.

PHP:
$img = imagecreatefromjpeg("obrazek.jpg");
$color = imagecolorallocate($img, 0, 0, 0);
imagettftext($img, 20, 20, 80, 40, $color, "czcionka.ttf", "TUTORIAL");
header('Content-Type: image/jpeg');
imagejpeg($img, null, 100);

Drugi, trzeci, czwarty oraz pi?ty parametr odpowiadaj? za lokalizacj? tekstu. Najlepiej jest samemu z tym poeksperymentowa?. Wa?ne jest jednak, ?e w php mo?emy u?y? w?asnej czcionki, wa?ne, ?eby r?wnie? znajdowa?a si? na serwerze.
 
Odp: PHP - obr?bka zdj??

No z tym poradnikiem ci ju? lepiej posz?o, i czego? si? dowiedzia?em. Bardzo dobrze opisane i ten poradnik powinien zosta? zaakceptowany. Leci rep++
 
Odp: PHP - obr?bka zdj??

Refresh!

Wiadomo?? kt?r? wpisa?e? jest za kr?tka. Prosz? wyd?u?y? swoj? wypowied? do przynajmniej 15 znak?w.
 
Odp: PHP - obr?bka zdj??

Refresh!

Wiadomo?? kt?r? wpisa?e? jest za kr?tka. Prosz? wyd?u?y? swoj? wypowied? do przynajmniej 15 znak?w.
 
Status
Zamknięty.
Do góry