CI posiada klasę ułatwiającą tworzenie miniatur oraz inne proste operacje na grafice za pomocą biblioteki GD2. Stworzenie miniatury sprowadza się do załadowania klasy i określenia konfiguracji. Oto przykład kodu z kontrolera:
// ładowanie biblioteki
$this->load->library('image_lib');
// konfiguracja
$config['image_library'] = 'GD2';
$config['source_image'] = 'uploads/av.png';
$config['create_thumb'] = TRUE;
$config['maintain_ratio'] = TRUE;
$config['width'] = 50;
$config['height'] = 50;
// przypisanie konfiguracji
$this->image_lib->initialize($config);
// wykonanie
$this->image_lib->resize();
-
image_library: biblioteka obsługująca operacje na grafice, domyślnie GD2. Dostępne opcje to: GD, GD2, ImageMagick, NetPBM
-
library_path: ścieżka do ImageMagick lub NetPBM (podajesz jeżeli chcesz ich użyć)
-
source_image: ścieżka do grafiki, na której wykonana ma być operacja
-
quality: jakość wynikowej grafiki (od 1 do 100) im wyższa jakość tym większy rozmiar pliku
-
new_image: ścieżka z nazwą pod jaką ma być zapisany wynik
-
width,
height: długość i wysokość po skalowaniu (robieniu miniatur)
-
create_thumb: jeżeli TRUE wynik zostanie zapisany jako "nazwa_thumb.rozszerzenie" (dojdzie "_thumb" do nazwy pliku) w tym samym katalogu
-
maintain_ratio: jeżeli TRUE skalowanie zachowa proporcje między wysokością a długością
Metody:
$this->image_lib->resize()
$this->image_lib->crop()
$this->image_lib->rotate()
$this->image_lib->watermark()
Zwrócą True w przypadku sukcesu lub False w przypadku porażki. Metoda:
$this->image_lib->display_errors();
Zwróci komunikat błędu.
Biblioteka CI obsługuje też inne operacje, m.in. nanoszenie tekstu na grafikę (watermark) co jest często stosowane do "podpisywania" grafiki w różnych serwisach. Oto przykład:
$this->load->library('image_lib');
$config['source_image'] = 'uploads/1.jpg';
$config['wm_text'] = 'Kurs CI';
$config['wm_type'] = 'text';
$config['wm_font_path'] = './system/fonts/texb.ttf';
$config['wm_font_size'] = '16';
$config['wm_text_color'] = 'aaaaaa';
$config['wm_vrt_alignment'] = 'bottom';
$config['wm_hor_alignment'] = 'right';
$config['wm_padding'] = '-5';
$this->image_lib->initialize($config);
$this->image_lib->watermark();
-
wm_type: "text" czy "overlay". Druga opcja to nanoszenie przeźroczystego pliku gif lub png
-
padding: ilość pikseli odstępu od lewej, górnej krawędzi.
-
wm_vrt_alignment: ulokowanie tekstu w pionie (bottom - dół, middle - środek, top - góra)
-
wm_hor_alignment: ulokowanie tekstu w poziomie (left, center, right)
-
wm_text: tekst do naniesienia
-
wm_font_path: ścieżka do czcionki jaka ma być użyta (to w przykładzie to czcionka dostarczana z CI)
-
wm_font_size: rozmiar czcionki
-
wm_font_color: kolor tekstu w formie heksowej (sześć znaków). Obecnie chyba skopane.