vvz.nw.ru К занятиям по PHP

<< Работа с изображениями > Функция GetImageSize()

array  GetImageSize ( string $fileName );

Эта функция возвращает не только размер (что следует из ее имени), но и другие характеристики графического файла $fileName для ряда поддерживаемых форматов. Строго говоря, это не только некоторые собственно графические форматы, но и более сложные. Например, формат Macromedia flash-фильма (SWF) содержит элементы растровой и векторной графики, а также сценарии на языке ActionScript, обеспечивающие анимацию и интерактивность.

Если файл $fileName недоступен либо не является графическим файлом поддерживаемого формата, функция возвращает false.

Возвращаемое значение представляет собой ассоциативный массив, первые четыре ключа которого целочисленные. Им соответствуют значения:

Начиная с PHP 4.3, возвращаемый массив содержит дополнительные элементы с ключами:

Количество каналов актуально для формата JPEG (3 для RGB режима and 4 для CMYK режима), однако функция зачем-то возвращает его и для формата GIF, хотя он всегда использует 3 канала.


Для примера просканируем каталог, содержащий графические файлы различных форматов, Flash-фильм в формате SWF и - для контроля - текстовый файл. В именах графических файлов отражены характеристики их формата.
 

имя файла ключи возвращаемого массива
0 1 2 3 'mime' 'bits' 'channels'
TIFF_MAC.tif1501008width="150" height="100"image/tiff  
PNG8.png1501003width="150" height="100"image/png8 
test_win.bmp1501006width="150" height="100"image/bmp24 
WBMP.wbmp15010015width="150" height="100"image/vnd.wap.wbmp  
GIF_2_colors.gif1501001width="150" height="100"image/gif13
test.psd1501005width="150" height="100"image/psd  
test_IBM_PC.tif1501007width="150" height="100"image/tiff  
test_png24.png1501003width="150" height="100"image/png8 
test_MAC.tif1501008width="150" height="100"image/tiff  
test_OS2.bmp1501006width="150" height="100"image/bmp  
BMP_OS2.bmp1501006width="150" height="100"image/bmp  
JPEG_CMYK.jpg1501002width="150" height="100"image/jpeg84
test.wbmp15010015width="150" height="100"image/vnd.wap.wbmp  
BMP_win_32bit.bmp1501006width="150" height="100"image/bmp32 
GIF_64_colors.gif1501001width="150" height="100"image/gif63
GIF_4_colors.gif1501001width="150" height="100"image/gif23
PNG24.png1501003width="150" height="100"image/png8 
GIF_32_colors.gif1501001width="150" height="100"image/gif53
flash-movie.swf5504004width="550" height="400"application/x-shockwave-flash  
TIFF_IBM_PC.tif1501007width="150" height="100"image/tiff  
PSD.psd1501005width="150" height="100"image/psd  
test.jpg1501002width="150" height="100"image/jpeg83
GIF_256_colors.gif1501001width="150" height="100"image/gif83
BMP_win_16bit.bmp1501006width="150" height="100"image/bmp16 
GIF_128_colors.gif1501001width="150" height="100"image/gif73
test.gif1501001width="150" height="100"image/gif43
GIF_8_colors.gif1501001width="150" height="100"image/gif33
GIF_16_colors.gif1501001width="150" height="100"image/gif43
test_png8.png1501003width="150" height="100"image/png8 
JPEG_RGB.jpg1501002width="150" height="100"image/jpeg83

А эти форматы из встретившихся в каталоге функция GetImageSize не распознает:

PXR.pxr
test.raw
test.pct
SCT.sct
test.eps
test.pcx
PCX.pcx
EPS.eps
test.sct
TGA.tga
test.tga
TEXT.txt
test.pdf
PCT.pct
test.pxr
PDF.pdf
RAW.raw

Отметим, что функция GetImageSize не требует графической библиотеки GD, так как не работает собственно с изображением, а просто считывает информацию из заголовка файла.



vvz.nw.ru  > PHP