2011-04-11 35 views
7

PHP ImageMagick函數getImageType返回一個數組編號,但我找不到任何有關如何將其與某個類型進行實際關聯的文檔。PHP ImageMagick getImageType返回數組...如何與類型關聯?

我需要知道,如果它是一個PNG,JPG,GIF,等...如果它是成功的,因爲每本頁面

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

// prints 6 
echo $ext 
+0

你爲什麼想知道格式正常工作?你可以設置格式爲任何,所以我想我不知道你爲什麼要格式? – mcgrailm 2011-04-12 00:48:38

+1

首先,如果它是透明png,我不想將它保存爲jpg,但如果它是jpg,我不希望將大小保存爲png。 – kylex 2011-04-12 02:09:29

+0

有任何這些答案可以解決您的問題? – mcgrailm 2011-04-13 14:15:59

回答

5

我建議這樣這對我來說

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

您可以使用getimagesize來獲取圖像大小和類型。 1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(英文字節或字節),8 = TIFF圖像類型在索引位置2返回

(或字節摩托羅拉),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。

腓DOC用於和getimagesize() - http://php.net/manual/en/function.getimagesize.php

實例:

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

編輯:從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 

編輯:getImageType返回IMAGICK_TYPE_ *常量之一(http://www.phpf1.com/manual/imagick-getimagetype.html)。你可以在這裏找到常量列表 - http://php.net/manual/en/imagick.constants.php

IMGTYPE常數

imagick :: IMGTYPE_UNDEFINED(整數)
imagick :: IMGTYPE_BILEVEL(整數)
imagick :: IMGTYPE_GRAYSCALE(整數)
imagick :: IMGTYPE_GRAYSCALEMATTE(整數)
imagick: :IMGTYPE_PALETTE(整數)
imagick :: IMGTYPE_PALETTEMATTE(整數)
imagick :: IMGTYPE_TRUECOLOR(整數)
imagick :: IMGTYPE_TRUECOLORMATTE(整數)
imagick :: IMGTYPE_COLORSEPARATION(整數)
imagick :: IMGTYPE_COLORSEPARATIONMATTE(整數)
imagick :: IMGTYPE_OPTIMIZE(整數)

+0

我想弄清楚如何使用ImageMagick函數。但是,謝謝。 – kylex 2011-04-11 21:51:21

+0

@kylex,我列出了上面返回的imagetype常量列表。 – 2011-04-12 14:22:25

-1

這是我能爲你這會做的最好給你的擴展和加載圖像

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

驗證映像一個很好的和快速的方法之前,你可以使用第一種:

$ identify -format %m image.jpg 
JPEG 

在PHP中:

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

更多關於使用-format:imagemagick formats