PHP 8.1.0 RC 4 available for testing

imageresolution

(PHP 7 >= 7.2.0, PHP 8)

imageresolutionПолучить или установить разрешение изображения

Описание

imageresolution(GdImage $image, ?int $resolution_x = null, ?int $resolution_y = null): array|bool

imageresolution() позволяет установить и получить разрешение изображения в DPI (точек на дюйм). Если необязательные параметры указаны как null, то будет возращено текущее разрешение в виде индексированного массива. Если только resolution_x не является null, для горизонтального и вертикального разрешения будет установлено это значение. Если все необязательные параметры не являются null, для горизонтального и вертикального разрешения устанавливаются эти значения соответственно.

Разрешение используется только как метаданные во время чтения или записи изображений в форматы, которые поддерживают этот вид данных (на данный момент это PNG и JPEG). Это никак не влияет на любые операции рисования. Разрешение по умолчанию для новых изображений — 96 DPI.

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

image

Объект GdImage, возвращаемый одной из функций создания изображений, например, такой как imagecreatetruecolor().

resolution_x

Горизонтальное разрешение в DPI.

resolution_y

Вертикальное разрешение в DPI.

Возвращаемые значения

Когда используется для получения информации о разрешении изображения, в случае успешного выполнения возвращается индексированный массив с информацией о горизонтальном и вертикальном разрешении или false в случае возникновения ошибки. Когда используется для установки разрешения изображения, в случае успешного выполнения возвращается true или false в случае возникновения ошибки.

Список изменений

Версия Описание
8.0.0 resolution_x и resolution_y теперь допускают значение null.

Примеры

Пример #1 Установка и получение разрешения изображения

<?php
$im 
imagecreatetruecolor(100100);
imageresolution($im200);
print_r(imageresolution($im));
imageresolution($im30072);
print_r(imageresolution($im));
?>

Результат выполнения данного примера:

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

User Contributed Notes 1 note

up
0
fernando dot fonseca at afteryou dot pt
3 months ago
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);
To Top