渲染意图变量存在于 ImageMagick 中,以提供对 ICC 颜色配置文件的支持。从 getRenderingIntent 函数中可以预期获得五种结果,它们是 ImageMagick 中渲染意图的预定义常量。这些值看起来像“imagick::RENDERINGINTENT_UNDEFINED”,其“_VALUE”值为:undefined、saturation、perceptual、absolute 和 relative。打印出来,Undefined 是 0,Saturation 是 1,Perceptual 是 2,Absolute 是 3,Relative 是 4。
ImageMagick 的官方文档很好地说明了这些值表示什么。(https://imagemagick.org.cn/RMagick/doc/constants.html#RenderingIntent)Undefined 表示“无意图”,Saturation 表示“一种渲染意图,它指定图像中像素的饱和度得以保留,也许以色调和亮度的准确性为代价”,Perceptual 意图表示“一种渲染意图,它指定图像的整个色域被压缩或扩展以填充分配设备的色域。灰平衡得以保留,但色度准确性可能无法保留”,Absolute 意图表示“绝对色度”,Relative 意图表示“相对色度”。
每次运行此函数时,它总是产生相同的结果:#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");
?>