getimagesize

(PHP 3, PHP 4, PHP 5)

getimagesize - получает размер изображения.

Описание

array getimagesize (string filename [, array imageinfo])

Функция getimagesize() определяет размер изображения GIF, JPG, PNG, SWF, PSD, TIFF или BMP и возвращает размеры, тип файла и высоту/ширину текстовой строки, используемой внутри нормального HTML-тэга IMG.

    Возвращает массив из 4 элементов:
  • Индекс 0 содержит ширину/width изображения в пикселах.
  • Индекс 1 содержит высоту/height.
  • Индекс 2 это флаг, указывающий тип изображения. 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(байтовый порядок intel), 8 = TIFF(байтовый порядок motorola), 9 = JPC, 10 = JP2, 11 = JPX.
  • Индекс 3 это текстовая строка с корректной строкой height="yyy" width="xxx", которая может использоваться непосредственно в тэге IMG.

Пример 1. getimagesize (file)

$size = getimagesize ("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" {$size[3]}>";

Пример 2. getimagesize (URL)

$size = getimagesize ("http://www.example.com/gifs/logo.gif");

    С изображениями JPG возвращаются два дополнительных индекса:
  • channel имеет значение 3 для RGB-рисунков и 4 для CMYK-рисунков.
  • bits это количество битов для каждого цвета.

Если доступ к файлу filename изображения невозможен или если это неправильное изображение, getimagesize() возвратит NULL и сгенерирует предупреждение.

Необязательный параметр imageinfo позволяет извлекать расширенную информацию из файла изображения. В настоящее время возвращается различные JPG APP-маркёры в ассоциативном массиве. Некоторые программы используют эти APP-маркёры для внедрения текстовой информации в изображения. Обычным является внедрение IPTC-информации http://www.iptc.org/ в маркёр APP13. Вы можете использовать функцию iptcparse() для разбора двоичного маркёра APP13 в нечто читабельное.

Пример 3. getimagesize возвращает IPTC

$size = getimagesize ("testimg.jpg",&$info);
if (isset ($info["APP13"])) {
 $iptc = iptcparse ($info["APP13"]);
 var_dump ($iptc);
}

Пример 4. getimagesize() и MIME

$size = getimagesize($filename);
$fp = fopen($filename, "rb");
if ($size && $fp) {
    header("Content-type: {$size['mime']}");
    fpassthru($fp);
    exit;
} else {
    // error
}

Примечание: поддержка TIFF была введена в PHP 4.2. Поддержка JPEG2000 была введена в PHP 4.3.

Эта функция не требует библиотеки GD image.

Поддержка URL была введена в PHP 4.0.5.

Смотрите также exif_imagetype(), exif_read_data() и exif_thumbnail().

Все функции изображение
Описание на ru2.php.net
Описание на php.ru