应该明确的是,该函数的设置版本不会更改图像本身,而只会更改内存中的资源,如果您尚未保存图像,这可能没问题。如果您的用例是针对已经存在于磁盘上的图像,则您应该始终执行以下操作:
imageresolution($img, 300, 300);
imagepng($img, $filname, $quality);
(PHP 7 >= 7.2.0, PHP 8)
imageresolution — 获取或设置图像的分辨率
imageresolution() 用于设置和获取图像的分辨率(单位为 DPI,每英寸点数)。如果可选参数为 null
,则返回当前分辨率作为索引数组。如果只有 resolution_x
不为 null
,则水平和垂直分辨率将设置为该值。如果所有可选参数都不为 null
,则水平和垂直分辨率将分别设置为这些值。
分辨率仅在从支持此类信息的格式(当前为 PNG 和 JPEG)读取和写入图像时用作元信息。它不影响任何绘图操作。新图像的默认分辨率为 96 DPI。
image
一个 GdImage 对象,由图像创建函数(例如 imagecreatetruecolor())返回。
resolution_x
水平分辨率(DPI)。
resolution_y
垂直分辨率(DPI)。
版本 | 描述 |
---|---|
8.0.0 |
resolution_x 和 resolution_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 )
应该明确的是,该函数的设置版本不会更改图像本身,而只会更改内存中的资源,如果您尚未保存图像,这可能没问题。如果您的用例是针对已经存在于磁盘上的图像,则您应该始终执行以下操作:
imageresolution($img, 300, 300);
imagepng($img, $filname, $quality);