PHP Conference Nagoya 2025

Imagick::getImageProperties

(PECL imagick 2, PECL imagick 3)

Imagick::getImagePropertiesRetorna as propriedades da imagem

Descrição

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

Retorna todas as propriedades associadas que correspondem ao padrão. Se false for passado como segundo parâmetro, apenas os nomes das propriedades são retornados. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.3.6 ou superior.

Parâmetros

pattern

O padrão para os nomes das propriedades.

include_values

Informa se devem ser retornados apenas os nomes das propriedades. Se for false, apenas os nomes das propriedades são retornados.

Valor Retornado

Retorna um array contendo as propriedades da imagem ou nomes de propriedades.

Exemplos

Exemplo #1 Usando Imagick::getImageProperties()

Um exemplo de extração de informações EXIF.

<?php

/* Cria o objeto */
$im = new imagick("/path/to/example.jpg");

/* Obtém as informações EXIF */
$exifArray = $im->getImageProperties("exif:*");

/* Faz um laço de repetição pelas propriedades EXIF */
foreach ($exifArray as $name => $property)
{
echo
"{$name} => {$property}<br />\n";
}

?>

adicione uma nota

Notas Enviadas por Usuários (em inglês) 4 notes

up
1
holdoffhunger at gmail dot com
12 years ago
The getImageProperties function in PHP returns an array of property keys available for an image. To get these property values, you use getImageProperty function, giving it one of the available keys provided by the getImageProperties function result. For some images, you may have a lot of properties and for some, you may have few. The two that almost every image seems to have are "date:create" and "date:modify", but some images may have forty or more properties, some titled "exif:Compression", "photoshop:Credit", "jpeg:colorspace", "rdf:Alt", "stRef:documentID", and "xap:CreatorTool." PNG files will also have properties like "png:IHDR.bit_depth" and "png:IHDR.width,height." So far, it appears generally that GIF and BMP files, being simpler, have fewer properties, whereas JPEG and PNG files, being more complicated, have much wider array of properties. It seems incredibly useful in document management.

And now, some sample code and results :

<?php

// Author: holdoffhunger@gmail.com

// Imagick Type
// ---------------------------------------------

$imagick_type = new Imagick();

// Open File
// ---------------------------------------------

$file_to_grab = "image_workshop_directory/test.png";

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

// Grab File
// ---------------------------------------------

$imagick_type->readImageFile($file_handle_for_viewing_image_file);

// Get Image Properties
// ---------------------------------------------

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

// Print Image Properties
// ---------------------------------------------

print("<pre>");

print_r($imagick_type_properties);

// Print Each Individual, Image Property
// ---------------------------------------------

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

print(
"</pre>");

?>

Results of this done on a standard PNG image :

Array
(
[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 --- chunk was found (see Chromaticity, above)

png:gAMA --- gamma=0.45455 (See Gamma, above)

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 (See Rendering intent)
up
0
benkuhl at gmail dot com
11 years ago
The output of this method on a PDF:

Array
(
[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
)
up
0
mhufford
15 years ago
ImageMagick only supports setting a very small number of EXIF properties.

See http://www.imagemagick.org/discourse-server/viewtopic.php?t=14234
up
-2
www dot query at gmail dot com
13 years ago
To access a photograph's EXIF data an alternative method is the normal PHP Exif function.

<?php

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

?>

See: http://php.net/manual/en/book.exif.php
To Top