Imagick::getImageProperties

(PECL imagick 2, PECL imagick 3)

Imagick::getImageProperties返回图像属性

描述

public Imagick::getImageProperties(string $pattern = "*", bool $include_values = true): array

返回与模式匹配的所有关联属性。如果传递 false 作为第二个参数,则只返回属性名称。此方法在 Imagick 针对 ImageMagick 6.3.6 或更高版本编译时可用。

参数

pattern

属性名称的模式。

include_values

是否只返回属性名称。如果为 false,则只返回属性名称。

返回值

返回包含图像属性或属性名称的数组。

示例

示例 #1 使用 Imagick::getImageProperties()

提取 EXIF 信息的示例。

<?php

/* 创建对象 */
$im = new imagick("/path/to/example.jpg");

/* 获取 EXIF 信息 */
$exifArray = $im->getImageProperties("exif:*");

/* 循环遍历 EXIF 属性 */
foreach ($exifArray as $name => $property)
{
echo
"{$name} => {$property}<br />\n";
}

?>

添加注释

用户贡献的注释 4 notes

holdoffhunger at gmail dot com
12 年前
PHP 中的 getImageProperties 函数返回一个包含图像可用属性键的数组。要获取这些属性值,请使用 getImageProperty 函数,并为其提供 getImageProperties 函数结果提供的可用键之一。对于某些图像,您可能拥有很多属性,而对于另一些图像,您可能拥有很少的属性。几乎每张图像似乎都拥有的两个属性是 "date:create" 和 "date:modify",但有些图像可能拥有 40 多个属性,有些标题为 "exif:Compression"、"photoshop:Credit"、"jpeg:colorspace"、"rdf:Alt"、"stRef:documentID" 和 "xap:CreatorTool"。PNG 文件还将拥有像 "png:IHDR.bit_depth" 和 "png:IHDR.width,height" 这样的属性。到目前为止,似乎 GIF 和 BMP 文件(更简单)通常拥有更少的属性,而 JPEG 和 PNG 文件(更复杂)拥有更多更广泛的属性。它在文档管理方面似乎非常有用。

现在,一些示例代码和结果

<?php

// 作者:[email protected]

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

$imagick_type = new Imagick();

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

$file_to_grab = "image_workshop_directory/test.png";

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

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

$imagick_type->readImageFile($file_handle_for_viewing_image_file);

// 获取图像属性
// ---------------------------------------------

$imagick_type_properties = $imagick_type->getImageProperties('*', FALSE);

// 打印图像属性
// ---------------------------------------------

print("<pre>");

print_r($imagick_type_properties);

// 打印每个单独的图像属性
// ---------------------------------------------

foreach($imagick_type_properties as $value)
{
print(
"$value --- ");
print(
$imagick_type->getImageProperty("$value"));
print(
"<br><br>");
}

print(
"</pre>");

?>

在标准 PNG 图像上执行此操作的结果

数组
(
[0] => date:create
[1] => date:modify
[2] => png:cHRM
[3] => png:gAMA
[4] => png:IHDR.bit_depth
[5] => png:IHDR.color_type
[6] => png:IHDR.interlace_method
[7] => png:IHDR.width,height
[8] => png:sRGB
)
date:create --- 2012-05-19T18:26:45-05:00

date:modify --- 2012-05-19T18:26:45-05:00

png:cHRM --- 找到了块(请参见上面的色度)

png:gAMA --- gamma=0.45455(请参见上面的 Gamma)

png:IHDR.bit_depth --- 8

png:IHDR.color_type --- 2

png:IHDR.interlace_method --- 0

png:IHDR.width,height --- 320, 320

png:sRGB --- intent=0(请参见渲染意图)
benkuhl at gmail dot com
11 年前
此方法在 PDF 上的输出

数组
(
[date:create] => 2013-01-24T13:27:37-05:00
[date:modify] => 2013-01-24T13:27:37-05:00
[pdf:HiResBoundingBox] => 1089x396+0+0
[pdf:SpotColor-0] => PANTONE 697 C
[pdf:SpotColor-1] => Black
[pdf:SpotColor-10] => PANTONE 504 M C
[pdf:SpotColor-2] => Strike_Thru
[pdf:SpotColor-3] => PANTONE 7421 C
[pdf:SpotColor-4] => PANTONE 697 C
[pdf:SpotColor-5] => PANTONE 873 C
[pdf:SpotColor-6] => PANTONE 504 M C
[pdf:SpotColor-7] => Die
[pdf:SpotColor-8] => PANTONE 697 C
[pdf:SpotColor-9] => PANTONE 504 M C
[pdf:Version] => PDF-1.5
[signature] => 4d871b27b26537c523326f92454ecb2e19fa9e0e86e2a075f97354ad4f3bf122
)
mhufford
15 年前
ImageMagick 仅支持设置极少数的 EXIF 属性。

请参见 http://www.imagemagick.org/discourse-server/viewtopic.php?t=14234
www dot query at gmail dot com
12 年前
要访问照片的 EXIF 数据,另一种方法是使用普通的 PHP Exif 函数。

<?php

$exif_data
= exif_read_data($pic1);
$edate = $exif_data['DateTime'];

?>

请参见:https://php.net/manual/en/book.exif.php
To Top