gpt4 book ai didi

php - 创建 png 文件

转载 作者:可可西里 更新时间:2023-10-31 22:52:38 26 4
gpt4 key购买 nike

我制作了一个函数来处理 jpg 和 png 文件,但在尝试上传 png 文件时出现错误。

这是函数:

function createImg ($type, $src, $dst, $width, $height, $quality) {

$newImage = imagecreatetruecolor($width,$height);
if ($type == "jpg/jpeg") {
//imagecreatefromjpeg() returns an image identifier representing the image obtained from the given filename.
$source = imagecreatefromjpeg($src);
}
else if ($type == "png") {
//imagecreatefrompng() returns an image identifier representing the image obtained from the given filename.
$source = imagecreatefrompng($src);
}
imagecopyresampled($newImage,$source,0,0,0,0,$width,$height,getWidth($src),getHeight($src));
if ($type == "jpg/jpeg") {
//imagejpeg() creates a JPEG file from the given image.
imagejpeg($newImage,$dst,$quality);
}
else if ($type == "png") {
//imagepng() creates a PNG file from the given image.
imagepng($newImage,$dst,$quality);
}
return $dst;

可以正常使用 jpg,但使用 png 我会收到此错误消息:

警告:imagepng() [function.imagepng]: gd-png: fatal libpng error: zlib failed to initialize compressor -- stream error in E:...\php\functions.upload.php on line 48

警告:imagepng() [function.imagepng]:gd-png 错误:setjmp 在第 48 行的 E:...\php\functions.upload.php 中返回错误条件

编辑:

我刚刚更改删除了 imagepng();并且只使用 imagejpeg 并且它像这样工作,我只想保存 jpg 文件。谢谢!

最佳答案

问题是因为 imagejpeg 质量最高可达 100,而 imagepng 最高质量为 9。试试这个

 else if ($type == "png") {
//imagepng() creates a PNG file from the given image.
$q=9/100;
$quality*=$q;
imagepng($newImage,$dst,$quality);
}

关于php - 创建 png 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7878754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com