downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Imagick::pingImage> <Imagick::paintOpaqueImage
Last updated: Fri, 14 Aug 2009

view this page in

Imagick::paintTransparentImage

(PECL imagick 2.0.0)

Imagick::paintTransparentImageRemplit les pixels avec une couleur

Description

bool Imagick::paintTransparentImage ( mixed $target , float $alpha , float $fuzz )
Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Change les pixels qui correspondent à une couleur en une couleur de remplissage.

Liste de paramètres

target

La couleur cible, avec son opacité.

alpha

Le niveau de transparence : 1.0 est totalement opaque, et 0 est totalement transparent.

fuzz

Ce paramètre indique la tolérance qui permet de considérer que deux couleurs sont identiques.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version Description
2.1.0 Permet désormais l'utilisation d'une chaîne pour représenter la couleur. Les versions précédentes ne permettaient que les objets ImagickPixel.



add a note add a note User Contributed Notes
Imagick::paintTransparentImage
Anonymous
06-Mar-2009 04:11
Actually it does seem to work just not the way expected perhaps.

Looking at the fuzz option on ImageMagick's site (http://www.imagemagick.org/script/command-line-options.php#fuzz), "The distance can be in absolute intensity units or, by appending % as a percentage of the maximum possible intensity (255, 65535, or 4294967295)."

As it requires a float, the percentage value won't work so it actually one of the max intensity values.  In my case, the images I was working with seemed to have max intensity values of 65535.  So a fuzz of 6500, for roughly 10%, seemed to do the trick.

The part that might be problematic though is how do you determine the max intensity of a color/image?  Using a static 6500 would be fine until I would have to convert an image with a max intensity other than 65535.  If it's 255 it would wipe the entire image.  Or fall far short on the fuzz with the larger value.
paziek at gmail dot com
13-Feb-2009 02:53
Fuzz attribute doesn't work here.

#!/usr/bin/php
<?php

if(!isset($argv[1])) die("input file\n");

$im = new Imagick( $argv[1] );
$im->paintTransparentImage('rgb(246,241,230)', 0.0, 10);

file_put_contents('transparent_'.$argv[1], $im);
?>

Will "remove" only colors that match exactly rgb(246,241,230)

Imagick::pingImage> <Imagick::paintOpaqueImage
Last updated: Fri, 14 Aug 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites