PHP Conference Japan 2024

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 Threshold。您可以通过 ImageMagick 函数 getQuantumRange 获取此值。在我的 PHP 安装中,该值设置为 65535(2^16)。高于 Quantum Range 的值默认为 Quantum Range。对该函数执行阈值为 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