Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * @package: Paint <biblioteka graficzna>
- * @version: 1.0.0
- * @author: shady
- */
- class Paint
- {
- protected $paint;
- public function __construct( )
- {
- # jeśli serwer nie ma włączonego GD
- if ( !extension_loaded( 'gd' ) )
- # spróbuj załadować samodzielnie biblioteke GD
- if ( !dl( 'gd.so' ) )
- exit( 'Brak wsparcia dla biblioteki GD' );
- }
- # metoda do tworzenia grafiki z istniejących plików
- public function otworz( $plik, $rozszerzenie = 'jpg' )
- {
- if ( !is_file( $plik ) )
- exit( 'Nie ma takiego pliku!' );
- switch ( $rozszerzenie )
- {
- default:
- case 'jpg':
- case 'jpeg':
- $obraz = ImageCreateFromJPEG( $plik );
- break;
- case 'png':
- $obraz = ImageCreateFromPNG( $plik );
- break;
- case 'gif':
- $obraz = ImageCreateFromGIF( $plik );
- break;
- }
- return $obraz;
- }
- # metoda do tworzenia nowej grafiki
- public function stworz( $szerokosc, $wysokosc, $kolor = '0,0,0' )
- {
- $obraz = ImageCreate( $szerokosc, $wysokosc );
- # jeśli przekazano parametr kolor, wypełnij obrazek tym kolorem
- if ( isset( $kolor ) )
- $this->kolor( $obraz, $kolor );
- return $obraz;
- }
- # metoda do wyświetlania przekazanej jej grafiki
- public function wyswietl( $obraz, $rozszerzenie, $jakosc = NULL )
- {
- switch ( $rozszerzenie )
- {
- default:
- case 'jpg':
- case 'jpeg':
- header( 'Content-type: Image/' . $rozszerzenie );
- ImageJPEG( $obraz, NULL, ( isset( $jakosc ) ? $jakosc : 100 ) );
- break;
- case 'png':
- header( 'Content-type: Image/' . $rozszerzenie );
- ImagePNG( $obraz, NULL, ( isset( $jakosc ) ? $jakosc : 9 ) );
- break;
- case 'gif':
- header( 'Content-type: Image/' . $rozszerzenie );
- ImageGif( $obraz );
- break;
- }
- }
- # metoda do zapisywania na dysku przekazanego obrazka
- public function zapisz( $obraz, $rozszerzenie, $sciezka, $jakosc = NULL )
- {
- switch ( $rozszerzenie )
- {
- default:
- case 'jpg':
- case 'jpeg':
- ImageJPEG( $obraz, $sciezka, ( isset( $jakosc ) ? $jakosc : 100 ) );
- break;
- case 'png':
- ImagePNG( $obraz, $sciezka, ( isset( $jakosc ) ? $jakosc : 9 ) );
- break;
- case 'gif':
- ImageGIF( $obraz, $sciezka );
- break;
- }
- }
- # meotda dodająca na obrazek tekst
- public function tekst( $obraz, $rozmiar, $pochylenie, $x, $y, $kolor, $czcionka, $tekst )
- {
- ImageTTFText( $obraz, $rozmiar, $pochylenie, $x, $y, $this->kolor( $obraz, $kolor ), $czcionka, $tekst );
- }
- # metoda do wygodnego definiowania koloru
- public function kolor( $obraz, $rgb = '0,0,0' )
- {
- $kolory = explode( ',', $rgb );
- if ( isset( $kolory[3] ) )
- return ImageColorAllocateAlpha( $obraz, $kolory[0], $kolory[1], $kolory[2], $kolory[3] );
- else
- return ImageColorAllocate( $obraz, $kolory[0], $kolory[1], $kolory[2] );
- }
- # metoda do rysowania figur i liń
- public function rysuj( $obraz, $ksztalt, $kolor, $wypelnienie = false, $szerokosc, $wysokosc, $x, $y )
- {
- $kolor = $this->kolor( $obraz, $kolor );
- switch ( $ksztalt )
- {
- default:
- case 'linia':
- ImageLine( $obraz, $szerokosc, $wysokosc, $x, $y, $kolor );
- break;
- case 'prostokat':
- if ( $wypelnienie )
- ImageFilledRectangle( $obraz, $szerokosc, $wysokosc, $x, $y, $kolor );
- else
- ImageRectangle( $obraz, $szerokosc, $wysokosc, $x, $y, $kolor );
- break;
- case 'elipsa':
- if ( $wypelnienie )
- ImageFilledEllipse( $obraz, $szerokosc, $wysokosc, $x, $y, $kolor );
- else
- ImageEllipse( $obraz, $szerokosc, $wysokosc, $x, $y, $kolor );
- break;
- }
- }
- # metoda pozwalająca rysować bardziej złożone figury
- public function rysuj_wielokat( $obraz, $kolor, $wypelnienie, $punkty, $wierzcholkow )
- {
- $kolor = $this->kolor( $obraz, $kolor );
- if ( $wypelnienie )
- ImagePolygon( $obraz, $punkty, $wierzcholkow, $kolor );
- else
- ImageFilledPolygon( $obraz, $punkty, $wierzcholkow, $kolor );
- }
- # metoda zmieniająca proporcjonalnie rozmiar obrazka
- public function zmien_rozmiar( $obraz, $nowa_szerokosc, $nowa_wysokosc )
- {
- $szerokosc = ImagesX( $obraz );
- $wysokosc = ImagesY( $obraz );
- $nowa_wysokosc = $wysokosc * $nowa_wysokosc / $wysokosc;
- $nowy_obraz = ImageCreateTrueColor( $nowa_szerokosc, $nowa_wysokosc );
- ImageCopyResampled( $nowy_obraz, $obraz, 0, 0, 0, 0, $nowa_szerokosc, $nowa_wysokosc, $szerokosc, $wysokosc );
- return $nowy_obraz;
- }
- # metoda zmieniająca procentowo rozmiar obrazka
- public function zmien_rozmiar_procentowo( $obraz, $procent )
- {
- $szerokosc = ImagesX( $obraz );
- $wysokosc = ImagesY( $obraz );
- $nowa_szerokosc = $szerokosc * $procent;
- $nowa_wysokosc = $wysokosc * $procent;
- $nowy_obraz = ImageCreateTrueColor( $nowa_szerokosc, $nowa_wysokosc );
- ImageCopyResampled( $nowy_obraz, $obraz, 0, 0, 0, 0, $nowa_szerokosc, $nowa_wysokosc, $szerokosc, $wysokosc );
- return $nowy_obraz;
- }
- # metoda obcinająca obrazek z wyznaczonych stron
- public function gilotyna( $obraz, $x = 0, $y = 0 )
- {
- $szerokosc = ImagesX( $obraz );
- $wysokosc = ImagesY( $obraz );
- $nowa_szerokosc = $szerokosc - $x;
- $nowa_wysokosc = $wysokosc - $y;
- $nowy_obraz = ImageCreateTrueColor( $nowa_szerokosc, $nowa_wysokosc );
- ImageCopyResampled( $nowy_obraz, $obraz, 0, 0, $x, $y, $szerokosc, $wysokosc, $szerokosc, $wysokosc );
- return $nowy_obraz;
- }
- # metoda czyszcząca obrazek z pamięci
- public function wyczysc( $obraz )
- {
- ImageDestroy( $obraz );
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement