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

Manipulacje grafiką za pomocą eZ components

Efekty graficzne

Przyszedł wreszcie czas, by zaprezentować możliwości łączenia filtrów w celu uzyskania ciekawych efektów graficznych. W przykładzie poniższym przytniemy obrazek, a następnie przekonwertujemy do go odcieni szarości.

Zwróć przy tym uwagę, że kod jest w tym miejscu niezwykle podobny do tego, od którego zaczynaliśmy. Tym razem jednak zdefiniujemy dwa nowe filtry: crop oraz colorspace. Filtr crop wytnie nam mały fragment ze źródłowego obrazka, natomiast colorspace zamieni jego kolory w odcienie szarości.

Dodatkowe filtry

Ponieważ większość kodu jest analogiczna do tej z pierwszego przykładu, możemy się w tym miejscu skupić na zdefiniowaniu nowych filtrów konwersji w zmiennej $filters. Jest to tablica zawierająca trzy obiekty klasy ezcImageFilter.

Właściwości filtru skalującego pozostaną takie same, jak w przykładzie pierwszym. Kolejność użycia (zastosowania) filtrów jest taka, jak kolejność ich zdefiniowania, w związku z czym pamiętać należy, że np. zdefiniowanie filtru skalującego przed filtrem przycinającym może przynieść niepożądane rezultaty.

Przykładowy kod oraz wynik jego działania
<?php
 
// Load autoloader functionality
require_once 'Base/base.php';
function __autoload( $className )
{
  ezcBase::autoload( $className );
}
 
// Define which handler to use for the image manipulation.
$settings = new ezcImageConverterSettings(
    array(
       new ezcImageHandlerSettings( 'GD', 'ezcImageGdHandler' ),
        new ezcImageHandlerSettings( 'ImageMagick', 'ezcImageImagemagickHandler' )
        )
    );
 
// Create the converter object.
$converter = new ezcImageConverter( $settings );
 
$filters = array(
    new ezcImageFilter(
        'crop',
        array( 'x' => 740,
               'width' => 1300,
               'y' => 720,
               'height' => 900
               )
        ),
    new ezcImageFilter(
        'colorspace',
        array(
            'space' => ezcImageColorspaceFilters::COLORSPACE_GREY
            )
        ),
    new ezcImageFilter(
        'scale',
        array( 'width'    => 500,
               'height'   => 350,
               'direction' => ezcImageGeometryFilters::SCALE_DOWN
               )
        )
    );
 
// Create the transformation inside the manager
$converter->createTransformation( 'crop', $filters, array( 'image/jpeg' ) );
 
// Transform an image.
$converter->transform( 'crop', "vulcher.jpg", "vulcher_converted.jpg" );
 
print( "<p><img src='vulcher_converted.jpg' /></p>" );
 
?>

Obraz wejściowy użyty w przykładzie jest kolorowy i przedstawia dwa ptaki:

Ten obraz przedstawia natomiast wynik zastosowania opisanych filtrów graficznych - jeden ptak (ten z lewej strony oryginału), przedstawiony w odcieniach szarości:

Informacje na podobny temat:
Wasze opinie
Wszystkie opinie użytkowników: (0)
Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2022 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System