在 PHP 中,使用 imagecreatefrompng()
函数创建图像时,可以通过调整图像的缩放比例来提高图像质量
function imagecreatefrompng_improved($filename, $scale = 1) {
// 获取原始图像的宽度和高度
$source_image = imagecreatefrompng($filename);
$source_width = imagesx($source_image);
$source_height = imagesy($source_image);
// 计算新的宽度和高度(根据缩放比例)
$new_width = intval($source_width * $scale);
$new_height = intval($source_height * $scale);
// 创建一个新的空白图像,用于保存调整大小后的图像
$new_image = imagecreatetruecolor($new_width, $new_height);
// 保持 PNG 图像的透明度
imagealphablending($new_image, false);
imagesavealpha($new_image, true);
$transparent = imagecolorallocatealpha($new_image, 255, 255, 255, 127);
imagefilledrectangle($new_image, 0, 0, $new_width, $new_height, $transparent);
// 将原始图像按比例缩放到新图像中
imagecopyresampled($new_image, $source_image, 0, 0, 0, 0, $new_width, $new_height, $source_width, $source_height);
// 销毁原始图像资源
imagedestroy($source_image);
return $new_image;
}
使用此函数时,只需传入 PNG 图像文件名以及缩放比例即可。例如:
$image = imagecreatefrompng_improved('example.png', 1.5);
这将创建一个新的图像资源,其宽度和高度分别为原始图像的 1.5 倍,从而提高了图像质量。请注意,缩放比例越大,图像质量将越高,但文件大小也会相应增加。