Imagick::contrastImage

(PECL imagick 2, PECL imagick 3)

Imagick::contrastImage β€” Cambia el contraste de una imagen

DescripciΓ³n

public Imagick::contrastImage(bool $sharpen): bool

Mejora la diferencias de intensidad entre elementos claros y oscuros de la imagen. Establezca la agudizaciΓ³n a un valor que no sea 0 para aumentar el contraste de la imagen, de otro modo el contraste se reduce.

ParΓ‘metros

sharpen

El valor de la agudizaciΓ³n

Valores devueltos

Devuelve true en caso de Γ©xito.

Errores/Excepciones

Lanza una excepciΓ³n ImagickException si ocurre un error.

Ejemplos

Ejemplo #1 Imagick::contrastImage()

<?php
function contrastImage($imagePath, $contrastType) {
$imagick = new \Imagick(realpath($imagePath));
if (
$contrastType != 2) {
$imagick->contrastImage($contrastType);
}

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

?>

οΌ‹add a note

User Contributed Notes 3 notes

up
3
removespam dot roland at tannerritchie dot com ΒΆ
10 years ago
Both xyking and quickshiftin include errors in their comments. xyking's error is in looping through negative numbers. quickshifting is incorrect in stating that 0 *increases* contrast (it does not - it decreases it).

Here is a (tested, working) method to increment or decrement contrast:
<?php
class Images {
public function
contrastImage($contrast, $imagePath){

$this->image = new Imagick();
$this->image->readImage($imagePath);

if (
$contrast > 0){
for (
$i = 1; $i < $contrast; $i++){
$this->image->contrastImage(1);
}
}else if (
$contrast <= 0) {

for (
$i = 0; $i > $contrast; $i--) {

$this->image->contrastImage(0);
}
}
}
}
?>
up
-4
xyking ΒΆ
15 years ago
Tip:
<?php
$image
->contrastImage(1); //Increase contrast once
$image->contrastImage(1); //Increase contrast more
$image->contrastImage(1); //Increase contrast even more

$image->contrastImage(0); //Decrease contrast once
$image->contrastImage(0); //Decrease contrast more
$image->contrastImage(0); //Decrease contrast even more

//This could be made into a function like this:
public function contrast($level) {
$level = (int)$level;
if (
$level < -10) {
$level = -10;
} else if (
$level > 10) {
$level = 10;
}
if (
$level > 0) {
for (
$i = 0; $i < $level; $i++) {
$this->image->contrastImage(1);
}
} else if (
$level < 0) {
for (
$i = $level; $i > 0; $i--) {
$this->image->contrastImage(0);
}
}
}
?>
up
-5
quickshiftin at gmail dot com ΒΆ
10 years ago
xyking's comment is wrong so be careful if you read it. You pass a value of 0 to *increase* the contrast.
To Top