Imagick::solarizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::solarizeImage对图像应用太阳化效果

描述

public Imagick::solarizeImage(int $threshold): bool

对图像应用特殊效果,类似于在感光纸上选择性曝光区域来实现的暗室效果。阈值范围为 0 到 QuantumRange,表示太阳化的程度。

参数

threshold

返回值

成功时返回 true

示例

示例 #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();
}

?>

添加备注

用户贡献的备注 1 备注

0
holdoffhunger at gmail dot com
12 年前
这是一种很酷的图像处理方式,可以与其他 ImageMagick 效果一起使用,例如 PosterizeImage 和 OilPaintImage,使其更具艺术性。SolarizeImage 将整个色谱向红色偏移——白色直接推向红色,蓝色推向绿色,等等。它主要是一种迷幻效果。您可以选择一个“阈值”参数,它实际上只是您希望在图像中使用多少这种效果。最小值为 0,使用负数将默认值为 0。最大值为 Quantum 阈值。您可以通过 ImageMagick 函数 getQuantumRange 获取此值。在我的 PHP 安装中,该值设置为 65535 (2^16)。高于 Quantum 范围的值将默认为 Quantum 范围。对图像执行此函数并在阈值为 0 时执行的最大效果,而阈值为最大时,图像根本不会发生任何变化。

现在是一个简单的代码演示

<?php

// 作者:[email protected]

// 获取图像文件数据
// ---------------------------------------------

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

$imagick_type = new Imagick();

// 打开文件
// ---------------------------------------------

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

$imagick_type->readImageFile($file_handle_for_viewing_image_file);

// 执行函数
// ---------------------------------------------

$imagick_type->solarizeImage(30000);

// 文件名
// ---------------------------------------------

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

// 保存文件
// ---------------------------------------------

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

$imagick_type->writeImageFile($file_handle_for_saving_image_file);

?>
To Top