Imagick::getImageType

(PECL imagick 2, PECL imagick 3)

Imagick::getImageType获取可能的图像类型

说明

public Imagick::getImageType(): int

获取可能的图像类型。

参数

此函数没有参数。

错误/异常

在发生错误时抛出 ImagickException。

添加注释

用户贡献的注释 2 个注释

holdoffhunger at gmail dot com
12 年前
此函数将返回一个整数,该值等于由 ImageMagick 类定义的 IMGType 常量的计算值。访问它们时,它们看起来像 "imagick::IMGTYPE_PALETTE",但 "_VALUE" 值为:undefined、bilevel、grayscale、grayscalematte、palette、palettematte、truecolor、truecolormatte、colorseparation、colorseparationmatte 和 optimize。如果打印这些值,undefined 为 '0',bilevel 为 '1',grayscale 为 '2',依此类推。

对于在画图中绘制的 BMP 图片,我得到了值 # 4 - Palette。对于海洋或丛林的 BMP 或 JPEG 照片,我得到了值 # 6 - Truecolor。对于动画 GIF 文件,我得到了值 # 5 - Palette Matte。对于黑白 JPEG 图像,我得到了值 # 2 - Grayscale。这些是我使用此函数获得的最常见结果。

一些示例代码

<?php

// 作者:[email protected]

// Imagick 类型
// ---------------------------------------------

$imagick_type = new Imagick();

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

$file_to_grab = "image_workshop_directory/test.bmp";

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

// 获取文件
// ---------------------------------------------

$imagick_type->readImageFile($file_handle_for_viewing_image_file);

// 获取图像类型值
// ---------------------------------------------

$image_type = $imagick_type->getImageType();

// 解释图像类型值
// ---------------------------------------------

switch($image_type)
{
case
imagick::IMGTYPE_UNDEFINED:
$image_type_title = "Undefined";
break;

case
imagick::IMGTYPE_BILEVEL:
$image_type_title = "Bilevel";
break;

case
imagick::IMGTYPE_GRAYSCALE:
$image_type_title = "Grayscale";
break;

case
imagick::IMGTYPE_GRAYSCALEMATTE:
$image_type_title = "Grayscale Matte";
break;

case
imagick::IMGTYPE_PALETTE:
$image_type_title = "Palette";
break;

case
imagick::IMGTYPE_PALETTEMATTE:
$image_type_title = "Palette Matte";
break;

case
imagick::IMGTYPE_TRUECOLOR:
$image_type_title = "Truecolor";
break;

case
imagick::IMGTYPE_TRUECOLORMATTE:
$image_type_title = "Truecolor Matte";
break;

case
imagick::IMGTYPE_COLORSEPARATION:
$image_type_title = "Color Separation";
break;

case
imagick::IMGTYPE_COLORSEPARATIONMATTE:
$image_type_title = "Color Separation Matte";
break;

case
imagick::IMGTYPE_OPTIMIZE:
$image_type_title = "Optimize";
break;
}

// 打印图像类型值
// ---------------------------------------------

print("# $image_type - $image_type_title");

?>
lukeydeluxe at gmail dot com
15 年前
请记住,如果成功,结果将是一个数组,这意味着如果你想知道文件使用的是什么格式,你应该调用例如 "$var[format]"。
To Top