PHP Conference Nagoya 2025

Imagick::solarizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::solarizeImageGörüntüye uzun pozlama etkisi uygular

Açıklama

public Imagick::solarizeImage(int $eşik): bool

Karanlık odada ışığa duyarlı kağıdın belli alanlarına uzun süre ışık vererek elde edilen etkiye benzer bir etkiyi resme uygular. Eşik değeri, etkinin yayılma genişliğinin bir ölçüsü olup, 0 ile ParçacıkAralığı (QuantumRange) arasında bir değer olabilir.

Bağımsız Değişkenler

eşik

Dönen Değerler

Başarı durumunda true döner.

Örnekler

Örnek 1 - Imagick::solarizeImage()

<?php
function solarizeImage($imagePath, $solarizeThreshold) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->solarizeImage($solarizeThreshold * \Imagick::getQuantum());
header("Content-Type: image/jpg");
echo
$imagick->getImageBlob();
}

?>

add a note

User Contributed Notes 1 note

up
0
holdoffhunger at gmail dot com
12 years ago
This is something neat that you can do to an image as part of making it artistic, probably in conjunction with other ImageMagick effects, like PosterizeImage and OilPaintImage. SolarizeImage shifts the whole color spectrum toward red for an image -- white gets pushed directly into red, blues get pushed into greens, etc.. It is mostly a psychedelic effect. You have the option of choosing one parameter for "Threshold", which is really simply how much of this effect you want to have in an image. The minimum value is 0, and using a negative number defaults it to 0. The maximum value is the Quantum Threshold. You can get this value by the ImageMagick function getQuantumRange. On my install of PHP, that value is set to 65535 (2^16). Going higher than the Quantum Range defaults to the Quantum Range. An image with this function performed on it at Threshold 0 has the maximum effect performed, and at Threshold maximum the image has no changes made to it at all.

And now a simple demonstration of the code :

<?php

// Author: holdoffhunger@gmail.com

// Grab Image File Data
// ---------------------------------------------

$file_to_grab_with_location = "graphics_engine/image_workshop_directory/test.bmp";

$imagick_type = new Imagick();

// Open File
// ---------------------------------------------

$file_handle_for_viewing_image_file = fopen($file_to_grab_with_location, 'a+');

$imagick_type->readImageFile($file_handle_for_viewing_image_file);

// Perform Function
// ---------------------------------------------

$imagick_type->solarizeImage(30000);

// Filename
// ---------------------------------------------

$file_to_save_with_location = "graphics_engine/image_workshop_directory/test_new.bmp";

// Save File
// ---------------------------------------------

$file_handle_for_saving_image_file = fopen($file_to_save_with_location, 'a+');

$imagick_type->writeImageFile($file_handle_for_saving_image_file);

?>
To Top