getimagesize - Получение размера изображения
Вернуться к: GD и функции для работы с изображениями Функции
getimagesize
(PHP 4, PHP 5, PHP 7)
getimagesize — Получение размера изображения
Описание
$filename
[, array &$imageinfo
] )
Функция getimagesize() определит размер заданного изображения
и вернет этот размер вместе с типом файла и текстовой строкой
height/width, которую можно будет использовать внутри тэга
HTML IMG
, а также вернет соответствующий тип
содержимого HTTP.
Также getimagesize() может вернуть дополнительные сведения об
изображении через аргумент imageinfo
.
Замечание: Обратите внимание на тот факт, что отдельные части JPC и JP2 изображений могут иметь различную глубину цвета. В этом случае в параметре "bits" будет стоять максимальное значение из всех обнаруженных. Также JP2 файлы могут содержать несколько JPEG 2000 кодовых потоков. В таком случае getimagesize() вернет значения для первого такого потока, который будет обнаружен функцией в корне файла.
Замечание: Сведения об иконках извлекаются из иконки с наибольшим битрейтом.
Список параметров
-
filename
-
Этот аргумент определяет файл, сведения о котором будут извлекаться. Это может быть локальный или удаленный (зависит от конфигурации) файл. Передача данных удаленного файла должна осуществляться одним из поддерживаемых потоков.
-
imageinfo
-
Этот необязательный аргумент позволяет извлечь некоторые расширенные сведения из файла изображения. На данный момент можно получать различные JPG APP маркеры в виде ассоциативного массива. Некоторые программы используют эти маркеры для встраивания текста в картинку. Наиболее часто встраивают » IPTC сведения в APP13 маркер. Для преобразования двоичных данных APP13 маркера во что-то удобочитаемое можно воспользоваться функцией iptcparse().
Возвращаемые значения
Возвращает массив из 7 элементов или меньше. Не все типы изображений содержат элементы с каналами (channels) и битрейтом (bits).
Индексы 0 и 1 содержат ширину и высоту изображения.
Замечание:
Некоторые форматы файлов могут хранить несколько изображений или не содержать изображения вообще. В таких случаях getimagesize() не сможет определить размер изображения. getimagesize() вернет нули в качестве значений высоты и ширины.
Индекс 2 содержит одну из констант типа изображения IMAGETYPE_XXX constants.
Индекс 3 содержит строку со значениями ширины и высоты изображения height="yyy" width="xxx", которая может быть использована внутри IMG тэга.
mime - соответствующий MIME-тип изображения. Эти сведения используются для корректной обработки изображения на основании Content-type заголовка:
Пример #1 getimagesize() и MIME типы
<?php
$size = getimagesize($filename);
$fp = fopen($filename, "rb");
if ($size && $fp) {
header("Content-type: {$size['mime']}");
fpassthru($fp);
exit;
} else {
// ошибка
}
?>
channels принимает значение 3 для RGB картинок и 4 для CMYK.
bits - глубина цвета, число бит для каждого цвета.
Для некоторых типов изображений наличие значений channels и bits может сбить с толку. Например, GIF всегда использует 3 канала на пиксель, но глубину цвета невозможно вычислить для анимированных GIF изображений с общей таблицей цветов.
В случае ошибки функция вернет FALSE
.
Ошибки
Если доступ к файлу filename
невозможен,
getimagesize()
сгенерирует ошибку уровня E_WARNING
. В случае ошибки
чтения файла getimagesize() сгенерирует ошибку уровня
E_NOTICE
.
Список изменений
Версия | Описание |
---|---|
5.3.0 | Добавлена поддержка иконок. |
5.2.3 |
Уровень ошибок чтения, генерируемых функцией, снижен до
E_NOTICE с E_WARNING .
|
4.3.2 | Стала доступной поддержка JPC, JP2, JPX, JB2, XBM и WBMP. |
4.3.2 |
Добавлена поддержка JPEG 2000 для аргумента imageinfo .
|
4.3.0 | bits и channels стали доступны и для других типов. |
4.3.0 | Добавлена поддержка SWC and IFF. |
4.2.0 | Добавлена поддержка TIFF. |
4.0.6 | Добавлена поддержка BMP and PSD. |
Примеры
Пример #2 Пример использования getimagesize()
<?php
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" $attr alt=\"пример getimagesize()\" />";
?>
Пример #3 getimagesize (URL)
<?php
$size = getimagesize("http://www.example.com/gifs/logo.gif");
// если в имени файла есть пробелы, учтите это должным образом
$size = getimagesize("http://www.example.com/gifs/lo%20go.gif");
?>
Пример #4 getimagesize() возвращающая IPTC
<?php
$size = getimagesize("testimg.jpg", $info);
if (isset($info["APP13"])) {
$iptc = iptcparse($info["APP13"]);
var_dump($iptc);
}
?>
Примечания
Замечание:
Этой функции не требуется библиотека GD.
Смотрите также
- image_type_to_mime_type() - Получение Mime-типа для типа изображения, возвращаемого функциями getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
- exif_imagetype() - Определение типа изображения
- exif_read_data() - Читает EXIF-заголовки JPEG и TIFF изображений
- exif_thumbnail() - Получает встроенный эскиз TIFF или JPEG изображения
Вернуться к: GD и функции для работы с изображениями Функции