渲染意图变量存在于 ImageMagick 中,用于提供对 ICC 颜色配置文件的支持。从 getRenderingIntent 函数可以获得五个结果,它们是 ImageMagick 中渲染意图的预定义常量。这些值类似于“imagick::RENDERINGINTENT_UNDEFINED”,其“_VALUE”值分别为:未定义、饱和度、感知、绝对和相对。打印出来,未定义为 0,饱和度为 1,感知为 2,绝对为 3,相对为 4。
ImageMagick 的官方文档很好地解释了这些值的含义。( https://imagemagick.org.cn/RMagick/doc/constants.html#RenderingIntent )未定义表示“无意图”,饱和度表示“一种渲染意图,它指定图像中像素的饱和度得到保留,这可能会以色相和亮度精度为代价”,感知意图表示“一种渲染意图,它指定图像的完整色域被压缩或扩展以填充目标设备的色域。灰平衡得到保留,但颜色精度可能无法保留”,绝对意图表示“绝对颜色”,相对意图表示“相对颜色”。
每次运行此函数时,它总是产生相同的结果:#2,表示感知意图。但这很有意义,因为 ImageMagick 文档关于渲染意图的说明是:“通常,用户或应用程序会在运行时或嵌入时动态设置渲染意图”。ImageMagick 文档还推荐了以下链接,以便更好地理解颜色空间配置文件方面的渲染意图: http://www.cambridgeincolour.com/tutorials/color-space-conversion.htm 。
一些示例代码
<?php
// 作者:[email protected]
// Imagick 类型
// ---------------------------------------------
$imagick_type = new Imagick();
// 打开文件
// ---------------------------------------------
$file_to_grab = "image_workshop_directory/test.jpg";
$file_handle_for_viewing_image_file = fopen($file_to_grab, 'a+');
// 获取文件
// ---------------------------------------------
$imagick_type->readImageFile($file_handle_for_viewing_image_file);
// 获取渲染意图值
// ---------------------------------------------
$imagick_rendering_intent = $imagick_type->getImageRenderingIntent();
switch($imagick_rendering_intent)
{
case '0':
$image_rendering_intent_evaluated = "Undefined";
break;
case '1':
$image_rendering_intent_evaluated = "Saturation";
break;
case '2':
$image_rendering_intent_evaluated = "Perceptual";
break;
case '3':
$image_rendering_intent_evaluated = "Absolute";
break;
case '4':
$image_rendering_intent_evaluated = "Relative";
break;
}
// 打印渲染意图值
// ---------------------------------------------
print("# $imagick_rendering_intent - $image_rendering_intent_evaluated");
?>