目前我想创建一张最低质量的透明png图片。
代码:
<?php
function createImg ($src, $dst, $width, $height, $quality) {
$newImage = imagecreatetruecolor($width,$height);
$source = imagecreatefrompng($src); //imagecreatefrompng() returns an image identifier representing the image obtained from the given filename.
imagecopyresampled($newImage,$source,0,0,0,0,$width,$height,$width,$height);
imagepng($newImage,$dst,$quality); //imagepng() creates a PNG file from the given image.
return $dst;
}
createImg ('test.png','test.png','1920','1080','1');
?>
然而,这里存在一些问题:
在创建任何新文件之前,我是否需要指定一个png文件?还是可以在没有任何现有png文件的情况下创建?
警告:imagecreatefrompng(test.png):无法打开流:没有那个文件或目录,位于
C:\ DSPadmin \ DEV \ ajax_optipng1.5 \ create.php的第4行
尽管出现错误消息,它仍会生成一个png文件,但我发现该文件是黑色图像,请问是否需要指定任何参数使其透明?
谢谢。
imagepng
的默认“quality”设置(应该被命名为压缩,因为png
的压缩是无损的)是9(据我所知,我测试了没有设置质量(234个字节),质量0(几百KB)和设置为9(234个字节))。所以我想这是GD能做到的最好的。 - max-m