应该明确的是,函数的设置版本不会改变图像本身,而只是内存中的资源,如果您还没有保存图像,这可能没问题。如果您的用例是针对已经存在于磁盘上的图像,那么您应该始终执行以下操作:
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);