Get image resolution php

getimagesize

Функция getimagesize() определит размер заданного изображения и вернет этот размер вместе с типом файла и текстовой строкой height/width, которую можно будет использовать внутри тэга HTML IMG , а также вернет соответствующий тип содержимого HTTP .

Также getimagesize() может вернуть дополнительные сведения об изображении через аргумент imageinfo .

Замечание: Обратите внимание на тот факт, что отдельные части JPC и JP2 изображений могут иметь различную глубину цвета. В этом случае в параметре «bits» будет стоять максимальное значение из всех обнаруженных. Также JP2 файлы могут содержать несколько JPEG 2000 кодовых потоков. В таком случае getimagesize() вернет значения для первого такого потока, который будет обнаружен функцией в корне файла.

Замечание: Сведения об иконках извлекаются из иконки с наибольшим битрейтом.

Список параметров

Этот аргумент определяет файл, сведения о котором будут извлекаться. Это может быть локальный или удаленный (зависит от конфигурации) файл. Передача данных удаленного файла должна осуществляться одним из поддерживаемых потоков.

Этот необязательный аргумент позволяет извлечь некоторые расширенные сведения из файла изображения. На данный момент можно получать различные 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 типы

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()

\"пример

list( $width , $height , $type , $attr ) = getimagesize ( «img/flag.jpg» );
echo «» ;
?>

Пример #3 getimagesize (URL)

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

// если в имени файла есть пробелы, учтите это должным образом
$size = getimagesize ( «http://www.example.com/gifs/lo%20go.gif» );

Пример #4 getimagesize() возвращающая IPTC

$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 изображения

Источник

imageresolution

imageresolution() allows to set and get the resolution of an image in DPI (dots per inch). If the optional parameters are null , the current resolution is returned as an indexed array. If only resolution_x is not null , the horizontal and vertical resolution are set to this value. If none of the optional parameters are null , the horizontal and vertical resolution are set to these values, respectively.

The resolution is only used as meta information when images are read from and written to formats supporting this kind of information (curently PNG and JPEG). It does not affect any drawing operations. The default resolution for new images is 96 DPI.

Parameters

A GdImage object, returned by one of the image creation functions, such as imagecreatetruecolor() .

The horizontal resolution in DPI.

The vertical resolution in DPI.

Return Values

When used as getter, it returns an indexed array of the horizontal and vertical resolution on success, or false on failure. When used as setter, it returns true on success, or false on failure.

Changelog

Examples

Example #1 Setting and getting the resolution of an image

$im = imagecreatetruecolor ( 100 , 100 );
imageresolution ( $im , 200 );
print_r ( imageresolution ( $im ));
imageresolution ( $im , 300 , 72 );
print_r ( imageresolution ( $im ));
?>

The above example will output:

Array ( [0] => 200 [1] => 200 ) Array ( [0] => 300 [1] => 72 )

User Contributed Notes 1 note

It should be clear that the set version of the function doesn’t change the image it self, just the resource in memory, which probably is fine if you didn’t save the image yet. If your use case is for an image that is already on disk, image you should always do something like:

imageresolution($img, 300, 300);
imagepng($img, $filname, $quality);

Оцените статью