2011-04-11 10 views
7

La función ImageMagick de PHP getImageType devuelve un número de matriz, pero no puedo encontrar ninguna documentación sobre cómo asociar esto con un tipo.PHP ImageMagick getImageType devuelve matriz ... ¿cómo asociar con el tipo?

Necesito saber si es un png, jpg, gif, etc ...

$image = new Imagick("test.png"); 
$ext = $image->getImageType(); 

// prints 6 
echo $ext 
+0

¿por qué quiere saber el formato? puedes establecer el formato a lo que sea, así que supongo que no sé por qué quieres el formato. – mcgrailm

+1

Por un lado, si es un png transparente, no quiero guardarlo como un jpg, pero si es un jpg, no quiero aumentar el tamaño para guardarlo como png. – kylex

+0

¿alguna de estas respuestas ha resuelto su problema? – mcgrailm

Respuesta

5

Sugiero esta manera, que funciona bien para mí

$image = new Imagick('image.gif'); 
    $image->getImageFormat(); 
    echo $image; // output GIF 
3

Puede usar getimagesize para obtener el tamaño y tipo de imagen. El tipo de imagen es el retorno en el índice pos 2.

1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF (orden de bytes intel), 8 = TIFF (orden de bytes motorola), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM.

Php doc para getimagesize() - http://php.net/manual/en/function.getimagesize.php

Ejemplo de uso:

list($width, $height, $type) = getimagesize('herp-derp.png'); 
echo $type; 

Editar: comentario útil a partir de notas PHPDoc ....

In addition to thomporter's quick-reference of the output array, here's what PHP 4.4.0 does: 

Array[0] = Width 
Array[1] = Height 
Array[2] = Image Type Flag 
Array[3] = width="xxx" height="xxx" 
Array[bits] = bits 
Array[channels] = channels 
Array[mime] = mime-type 

Editar :getImageType devuelve una de las constantes IMAGICK_TYPE_ * (http://www.phpf1.com/manual/imagick-getimagetype.html). Puede encontrar la lista de constantes aquí: http://php.net/manual/en/imagick.constants.php.

imgtype constantes de

imagick :: IMGTYPE_UNDEFINED (integer)
imagick :: IMGTYPE_BILEVEL (integer)
imagick :: IMGTYPE_GRAYSCALE (integer)
imagick :: IMGTYPE_GRAYSCALEMATTE (integer)
imagick: : IMGTYPE_PALETTE (integer)
imagick :: IMGTYPE_PALETTEMATTE (integer)
imagick :: IMGTYPE_TRUECOLOR (número entero)
imagick :: IMGTYPE_TRUECOLORMATTE (entero)
imagick :: IMGTYPE_COLORSEPARATION (entero)
imagick :: IMGTYPE_COLORSEPARATIONMATTE (entero)
imagick :: IMGTYPE_OPTIMIZE (entero)

+0

Estoy tratando de averiguar cómo usar la función ImageMagick. Pero gracias, sin embargo. – kylex

+0

@kylex, incluí la lista de contadores de tipo de imagen que muestra arriba. –

-1

esto es lo mejor que podía hacer por usted esta voluntad darle la extensión y puede utilizar esa primera antes de cargar la imagen

$path_parts = pathinfo("test.png"); 
echo $path_parts ['extension']; 
1

una manera buena y rápida para validar imágenes es:

$ identify -format %m image.jpg 
JPEG 

en PHP:

<?php 
// If its not a valid image, returns an empty string. 
$image_type = exec('identify -format %m image.jpg'); 
?> 

Más acerca del uso de -format: imagemagick formats

Cuestiones relacionadas