Image Processing (ImageMagick)

Коментарии

Here is an example on how to take an image that is already in a string (say, from a database), and resize it, add a border, and print it out. I use this for showing reseller logos

  // Decode image from base64
  $image=base64_decode($imagedata);

  // Create Imagick object
  $im = new Imagick();

  // Convert image into Imagick
  $im->readimageblob($image);

  // Create thumbnail max of 200x82
  $im->thumbnailImage(200,82,true);

  // Add a subtle border
  $color=new ImagickPixel();
  $color->setColor("rgb(220,220,220)");
  $im->borderImage($color,1,1);

  // Output the image
  $output = $im->getimageblob();
  $outputtype = $im->getFormat();

  header("Content-type: $outputtype");
  echo $output;
2007-10-24 14:46:19
http://php5.kiev.ua/manual/ru/book.imagick.html
To load image (usually vector image, like PDF) with larger resolution than image's default is, you have to set resolution before reading the file, like this:

<?php
$im 
= new Imagick(); 
$im->setResolution300300 ); 
$im->readImage"test.pdf" );
?>
2008-04-08 10:06:35
http://php5.kiev.ua/manual/ru/book.imagick.html
Here's a handy function that finds the first occurrence of a specific pixel. You can set the tolerance of the color you are looking for, or set it to 0 if want an exact match

<?php

function findPixel($img$r$g$b$tolerance=5)
{
   
$original_                 = new Imagick($img);
   
$height                    0;
   
$width                    0;
    list(
$width$height)    = getimagesize($img);
   
$matrix_org                = array();
   
$matrix_mrk                = array();

    for( 
$x $x $width $x++){
       
$matrix_org[$x]            = array();
       
$matrix_mrk[$x]            = array();
    }

    for( 
$x $x $width $x++ )
    {
        for( 
$y $y $height $y++ ){
           
$matrix_org[$x][$y]                = $original_->getImagePixelColor($x$y)->getColorAsString();
           
$colors                         preg_replace('/[^-,0-9+$]/'''$matrix_org[$x][$y]); 
           
$colors                            explode(','$colors);
           
$r_org                            $colors[0];
           
$g_org                            $colors[1];
           
$b_org                            $colors[2];
           
            if(     ( 
$r <= ($r_org+$tolerance) && $r >= ($r_org $tolerance) ) 
                &&  ( 
$g <= ($g_org+$tolerance) && $g >= ($g_org $tolerance) ) 
                &&  ( 
$b <= ($b_org+$tolerance) && $b >= ($b_org $tolerance) ) )
            {
                return array( 
$x$y );
            }
        }
    }

    return 
false;
}

?>
2013-03-06 21:09:27
http://php5.kiev.ua/manual/ru/book.imagick.html

    Поддержать сайт на родительском проекте КГБ