RkBlog

Hardware, programming and astronomy tutorials and reviews.

Tworzenie miniatur i podpisów na grafikach

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:
<?php
// ł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();

Konfiguracja

- 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:
<?php
$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.
RkBlog

Kurs Code Igniter, 14 July 2008, Piotr Maliński

Comment article