Imagick::linearStretchImage

(PECL imagick 2, PECL imagick 3)

Imagick::linearStretchImageStretches with saturation the image intensity

说明

public Imagick::linearStretchImage ( float $blackPoint , float $whitePoint ) : bool

Stretches with saturation the image intensity.

参数

blackPoint

The image black point

whitePoint

The image white point

返回值

成功时返回 true

范例

Example #1 Imagick::linearStretchImage()

<?php
function linearStretchImage($imagePath$blackThreshold$whiteThreshold) {
    
$imagick = new \Imagick(realpath($imagePath));
    
$pixels $imagick->getImageWidth() * $imagick->getImageHeight();
    
$imagick->linearStretchImage($blackThreshold $pixels$whiteThreshold $pixels);

    
header("Content-Type: image/jpg");
    echo 
$imagick->getImageBlob();
}

?>

User Contributed Notes

SkepticaLee 11-Jun-2014 12:54
"Black" and "white" points here are pixel counts from the darkest and brightest ends respectively. To turn the darkest 90% of the pixels black, and the brightest 5% white, use the following:

<?php
$im
= new Imagick ("some image.png");
list (
$width, $height) = array_values ($im->getImageGeometry ());
$px = $width * $height;
$im->modulateImage (100, 0, 100);
$im->linearStretchImage ($px * 0.9, $px * 0.05);
$im->writeImage ("temp.jpg");
?>