dismiss Step into the future! Click here to switch to the beta php.net site
downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

Introduction> <GmagickPixel::setcolorvalue
[edit] Last updated: Fri, 28 Jun 2013

view this page in

Image Processing (ImageMagick)



Introduction> <GmagickPixel::setcolorvalue
[edit] Last updated: Fri, 28 Jun 2013
 
add a note add a note User Contributed Notes ImageMagick - [7 notes]
up
1
carlosvanhalen7 at gmail dot com
3 months ago
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 = 0 ; $x < $width ; $x++){
       
$matrix_org[$x]            = array();
       
$matrix_mrk[$x]            = array();
    }

    for(
$x = 0 ; $x < $width ; $x++ )
    {
        for(
$y = 0 ; $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;
}

?>
up
1
gmail dot com at james dot ellis
5 years ago
In case anyone is wondering about some examples for Imagick usage, take a look at Mikko Koppanen's blog at http://valokuva.org/?cat=1.
up
0
aem at teletype dot ru
1 year ago
To configure and build imagick extension with phpize, you must first install libmagickwand-dev and libmagickcore-dev.

For example, "sudo apt-get install libmagickwand-dev libmagickcore-dev" and then phpize and ./configure.
up
0
mlong-php at mlong dot us
5 years ago
The fit functionality of thumbnailImage doesn't work as one would anticipate. Instead, use this to make a thumbnail that has max of 200x82:

  // Create thumbnail max of 200x82
  $width=$im->getImageWidth();
  if ($width > 200) { $im->thumbnailImage(200,null,0); }

  $height=$im->getImageHeight();
  if ($height > 82) { $im->thumbnailImage(null,82,0); }
up
0
mlong-php at mlong dot us
5 years ago
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;
up
-1
Mike Robinson
4 years ago
PHP Admins: I realize this could be considered a bug report, but please leave this up as it contains helpful information that can be used until this page is updated correctly.

-------------

Please note that this list is lacking many new methods that are available in the current stable release (and even some older ones). You can view the Imagick changelog by going to http://pecl.php.net/package-changelog.php?package=imagick

As of release version 2.3.0RC2 the following methods not listed here are also available for use:

Currently unstable releases (2.3.0+):

* Imagick::getImageMimeType

* Imagick::writeimagefile

* Imagick::writeimagesfile

* Imagick::resetimagepage

* Imagick::setimageclipmask

* Imagick::getimageclipmask

* Imagick::animateimages

* Imagick::recolorimage

* Imagick::floodfillpaintimage

* Imagick::opaquepaintimage

* Imagick::transparentpaintimage

* Imagick::decipherimage

* Imagick::encipherimage

* Imagick::getimagealphachannel

* Imagick::getimagechanneldistortions

* Imagick::getimagegravity

* Imagick::setimagegravity

* Imagick::remapimage

* Imagick::exportimagepixels

* Imagick::getimagechannelkurtosis

* Imagick::functionimage

* Imagick::importImagePixels

* Imagick::sparseColorImage

* Imagick::deskewImage

* Imagick::segmentImage

* Imagickdraw::gettextkerning

* Imagickdraw::settextkerning

* Imagickdraw::gettextinterwordspacing

* Imagickdraw::gettextinterwordspacing

* ImagickPixel::getColorValueQuantum

* ImagickPixel::setColorValueQuamtum

* ImagickPixel::getIndex

* ImagickPixel::setIndex

Latest stable (2.2.2):

* Imagick::getImageChannelRange

* Imagick::setImageAlphaChannel

* Imagick::mergeImageLayers()

* Imagick::setPointsize()

* Imagick::getPointsize()
up
-1
Eero Niemi (eero at eero dot info)
5 years ago
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->setResolution( 300, 300 );
$im->readImage( "test.pdf" );
?>

 
show source | credits | stats | sitemap | contact | advertising | mirror sites