【问题标题】:imagepng generate black image backgroundimagepng 生成黑色图片背景
【发布时间】:2018-06-18 17:31:01
【问题描述】:

下面是我的图片生成代码:

$thumb = imagecreatetruecolor($newwidth, $newheight) or die('Cannot Initialize new GD image stream'); 
    print_r($thumb);
    $source = imagecreatefrompng($filename) or die('Cannot Initialize new GD image stream'); 
    print_r($source);
    imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
    @imagepng(  $thumb, $original_img_dir_absolute_path.$original_img_name, 0 );

它将生成第一个 png,但只有黑色背景。 任何人都知道它。

【问题讨论】:

    标签: php gd gdlib imagecreatefrompng


    【解决方案1】:

    您的代码似乎没问题。您可以检查片段是否没有占用原始图像的黑色部分。您也可以尝试删除imagepng() 的“质量”参数:

    imagepng($thumb, $original_img_dir_absolute_path . $original_img_name);
    

    可能您的原始图像对比度低,而低质量显示您的图像是黑色的。

    【讨论】:

    • 感谢系统调用,是的,图像质量有些问题
    • 我删除了“质量”参数并且它起作用了。但是我的函数正在生成一个纯文本类型的文件而不是我的缩略图......知道为什么吗?找不到对此的解释。
    • @PlayHardGoPro,如果您从网络服务器获取图像,您可能应该在发送之前添加适当的标头。例如,在 PHP 中,header("Content-Type: image/png").
    • @Syscall 你好。感谢回复!我曾经使用该标题,但出于两个原因将其删除:i)我不想显示图像,只生成并上传它; ii)那条线给了我黑屏。现在我认为还有一些不对劲的地方。
    猜你喜欢
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多