PHP Conference Japan 2024

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

返回值

作为 getter 使用时,如果成功,则返回水平和垂直分辨率的索引数组;如果失败,则返回 false。作为 setter 使用时,如果成功,则返回 true;如果失败,则返回 false

变更日志

版本 描述
8.0.0 resolution_xresolution_y 现在可以为空。

范例

示例 #1 设置和获取图像的分辨率

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

以上示例将输出

Array
(
    [0] => 200
    [1] => 200
)
Array
(
    [0] => 300
    [1] => 72
)
添加注释

用户贡献的注释 1 条注释

fernando dot fonseca at afteryou dot pt
3 年前
应该明确的是,该函数的设置版本不会更改图像本身,而只会更改内存中的资源,如果您尚未保存图像,这可能没问题。如果您的用例是针对已经存在于磁盘上的图像,则您应该始终执行以下操作:

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