Imagick::posterizeImage> <Imagick::pingImageFile
Last updated: Fri, 24 Feb 2012

Imagick::polaroidImage

(PECL imagick 2.0.0)

Imagick::polaroidImageSimulates a Polaroid picture

Descrição

bool Imagick::polaroidImage ( ImagickDraw $properties , float $angle )

Simulates a Polaroid picture. Este método esta disponível apenas se Imagick foi compilado com ImageMagick versão 6.3.2 ou mais nova.

Parâmetros

properties

The polaroid properties

angle

The polaroid angle

Valor Retornado

Retorna TRUE em sucesso.

Exemplos

Exemplo #1 A Imagick::polaroidImage() example

An example of using Imagick::polaroidImage()

<?php
/* Create the object */
$image = new Imagick('source.png');

/* Set the opacity */
$image->polaroidImage(new ImagickDraw(), 25);

/* output the image */
header('Content-type: image/png');
echo 
$image;

?>



User Contributed Notes
Imagick::polaroidImage
holdoffhunger at gmail dot com
28-Apr-2012 08:39
At first, the polaroidImage function looked amazingly simple.  "It must simply give a border of a specified color, and then rotate the given image by a certain number of degrees."  It actually turns out to be a really neat function.  Not only does it create an image that looks like a Polaroid of the targetted file, but it gives it a slight bend and curl that simulates a real, physical photograph.  On top of that, it gives a minor, fuzz shadow to some of the borders that accentuate the entire "effect" of looking at a real, 3d photograph.  There are some essentials to know, though!

The first parameter, $properties, has absolutely no effect upon the image that I can tell.  I suspect that this is a miswrite, and what is implied is that you need to edit the properties of the Imagick class object that you're doing the PolaroidImage to.  There are two colors: the border of the image, and the color of shadow.  Both are set with the setImageBorderColor and setImageBackgroundColor functions, conveniently.  Unfortunately, this function still seems to demand a blank value for "properties", and NULL doesn't do it apparently.

One final note of precaution: the color of the surface that the photograph lies on defaults to black for BMP files, and then to white to PNG files. (Weird, huh?)  Others have noticed this as well, on what appears to be the best source of info on this function: http://valokuva.org/?p=37 .

The angle rotates clockwise.  If you want to rotate counter-clockwise, it's easy: just use negative numbers, which this function accepts.

Now, for a brief demonstration of this function, with some fairly decent, standard parameters that should fit anyone's needs:

<?php

           
// Author: holdoffhunger@gmail.com

        // Grab Image File Data
        // ---------------------------------------------

   
$file_to_grab_with_location = "image_workshop_directory/test.png"
   
       
// Create ImageMagick Object Types
        // ---------------------------------------------

   
$imagick_type = new Imagick();
   
$draw_type = new ImagickDraw();
   
       
// Open File
        // ---------------------------------------------
   
   
$file_handle_for_viewing_image_file = fopen($file_to_grab_with_location, 'a+');

   
$imagick_type->readImageFile($file_handle_for_viewing_image_file);

       
// Perform Function: PolaroidImage
        // ---------------------------------------------

            // Polaroid Border Color:
            // ..............................................
   
   
$imagick_type->setImageBorderColor( new ImagickPixel( "$inbound_polaroid_border_color" ) );

           
// Polaroid Shadow Color:
            // ..............................................

   
$imagick_type->setImageBackgroundColor( new ImagickPixel( "$inbound_polaroid_background_color" ) );

           
// Call Function:
            // ..............................................

   
$imagick_type->polaroidImage($draw_type, -10);
   
       
// Save File
        // ---------------------------------------------
       
   
$file_to_save_with_location = "image_workshop_directory/test_result.png"

   
$file_handle_for_saving_image_file = fopen($file_to_save_with_location, 'a+');
   
$imagick_type->writeImageFile($file_handle_for_saving_image_file);

?>

Imagick::posterizeImage> <Imagick::pingImageFile
Last updated: Fri, 24 Feb 2012