PHP.mk документација

Imagick::floodFillPaintImage

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

imagick.floodfillpaintimage.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека imagick.floodfillpaintimage.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
Imagick::floodFillPaintImage

Референца за `imagick.floodfillpaintimage.php` со подобрена типографија и навигација.

imagick.floodfillpaintimage.php

Imagick::floodFillPaintImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::floodFillPaintImageЈа менува вредноста на бојата на кој било пиксел што одговара на целта

= NULL

public Imagick::floodFillPaintImage(
         mixed $fill,
         float $fuzz,
         mixed $target,
         int $x,
         int $y,
         bool $invert,
         int $channel од Imagick 3.4.4. Силно се обесхрабрува потпирањето на оваа функција.
): bool

Changes the color value of any pixel that matches target and is an immediate neighbor. This method is a replacement for deprecated Imagick::paintFloodFillImage(). This method is available if Imagick has been compiled against ImageMagick version 6.3.8 or newer.

Параметри

fill

Imagick::floodfillPaintImage()

fuzz

Количината на заматеност. На пример, поставете заматеност на 10 и бојата црвена на интензитети од 100 и 102 соодветно сега се толкуваат како иста боја.

target

ImagickPixel object or a string containing the target color to paint

x

Количината на замаглување. На пример, поставете замаглување на 10 и бојата црвена со интензитети од 100 и 102 соодветно сега се толкуваат како иста боја за целите на пополнувањето.

y

X почетна позиција на пополнувањето

invert

Враќа true слика кој било пиксел што не одговара на целната боја.

channel

Ги добива опсезите за еден или повеќе канали на сликата. Овој метод е достапен ако Imagick е компајлиран со верзија на ImageMagick 6.4.0 или понова. Обезбедете каква било константа на каналот што е валидна за вашиот режим на канал. За да се примени на повеќе од еден канал, комбинирајте ги константите на типот на каналот користејќи бинарни оператори. Погледнете ја оваа листа на Обезбедете кој било константен канал што е валиден за вашиот режим на канали. За да се примени на повеќе од еден канал, комбинирајте Imagick::CHANNEL_DEFAULTсо бинарни оператори. Стандардно е Обезбедете каква било константа на каналот што е валидна за вашиот режим на канал. За да се примени на повеќе од еден канал, комбинирајте ги константите на типот на каналот користејќи бинарни оператори. Погледнете ја оваа листа на

Вратени вредности

Патеката до PHP скриптата што треба да се провери. true на успешен исход.

Примери

Пример #1 Ја менува вредноста на бојата на кој било пиксел што одговара на целта и е непосреден сосед. Од ImageMagick 6.3.8 овој метод е отфрлен и example

<?php

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

/* create red, green and blue images */
$im->newImage(100, 50, "red");
$im->newImage(100, 50, "green");
$im->newImage(100, 50, "blue");

/* Append the images into one */
$im->resetIterator();
$combined = $im->appendImages(true);

/* Save the intermediate image for comparison */
$combined->writeImage("floodfillpaint_intermediate.png");

/* The target pixel to paint */
$x = 1;
$y = 1;

/* Get the color we are painting */
$target = $combined->getImagePixelColor($x, $y);

/* Paints pixel in position 1,1 black and all neighboring
pixels that match the target color */
$combined->floodfillPaintImage("black", 1, $target, $x, $y, false);

/* Save the result */
$combined->writeImage("floodfillpaint_result.png");
?>

Горниот пример ќе прикаже нешто слично на:

Output of example : Imagick::floodfillPaintImage()
Output of example : Imagick::floodfillPaintImage()

Белешки од корисници 1 белешка

Анонимен
пред 7 години
For fuzz, percentage or float values do not seem to work. The value is based on the intensity of the image colors. 

The documentation states: "The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color." 

For those of us who are not graphics geeks, your color intensity might be something like 65535. In which case, to get just 10% fuzz, you need to set it to 6550. 

You likely will not see any effect if you are using low numbers or floats, like 100, 20, or 0.8. 

For example: 
$im = new Imagick();
$transparentColor = new ImagickPixel('transparent');
$greenscreen = '#00FF08';    // Super bright green

$im->readImage("cartoon_dog.png");    // Cartoony dog with a black outline and a #00FF08 (super bright green) background. 

// Replace the green background with transparent.

// Leaves significant green lines around the outline of the dog, which is unacceptable.
$im->floodFillPaintImage($transparentColor, 30, $greenscreen, 0, 0, false, Imagick::CHANNEL_ALPHA);

// Works as intended - removes all of the green background. 
$im->floodFillPaintImage($transparentColor, 30000, $greenscreen, 0, 0, false, Imagick::CHANNEL_ALPHA);

Credit to the discussion here: 
https://php5.kiev.ua/php7/imagick.painttransparentimage.html
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.