【问题标题】:PNG Creation in PHP (is it different than gif and jpg?)在 PHP 中创建 PNG(它与 gif 和 jpg 不同吗?)
【发布时间】:2010-09-15 15:27:31
【问题描述】:

我有一个图像上传表单,它应该采用图像类型(PNG、JPEG、GIF),调整它的大小,然后将它保存到一个路径。

由于某种原因,我无法让 PNG 文件类型工作,它适用于 JPEG/GIF 并且文件被复制,所以看起来这与我创建 PNG 的方式有关。

在 PHP 中创建 PNG 是否需要不同的参数或选项?一些创建图像的示例代码:

$src = imagecreatefrompng($uploadedfile);
imagecreatetruecolor($newWidth,$newHeight)
imagecopyresampled($tmp,$src,0,0,0,0,$newWidth,$newHeight,$width,$height);
imagepng($tmp,$destinationPath."/".$destinationFile,100);

同样的命令适用于 JPG 和 GIF。

【问题讨论】:

    标签: php image png jpeg gif


    【解决方案1】:

    你需要看看你的 PHP 是如何构建的。例如:

    GD Support  enabled
    GD Version  bundled (2.0.28 compatible) 
    PNG Support     enabled 
    

    如果您没有编译 PNG 支持,则需要对其进行更新。

    【讨论】:

    • 勾选了,我支持 PNG不过为了回复……我想就是这样
    【解决方案2】:

    我发现了问题,只是我没有阅读 API 的问题:P。

    与imagejpg() 或imagegif() 不同,imagepng() 接受 0-9 的整数进行压缩。所以我将 100 作为参数传递,认为质量会更高,但我想我将其视为最大压缩。传递 0 解决了这个问题。

    也许 API 已经从 PHP 版本改变了?

    【讨论】:

      【解决方案3】:

      您是从 PNG-8 图像开始的吗?在使用 PHP 时,PNG-8 与 PNG-24 存在一些问题。确保编译了 PNG 支持,然后使用 look at this persons solution to the PNG-8 problem。

      【讨论】:

      • 我尝试了 8 位和 24 位,但没有任何区别。似乎 imagepng() 有问题。如果我只是在 png 上使用 imagejpeg(),它实际上可以正常工作...
      【解决方案4】:

      已选中,我支持 PNG:

      'GIF 读取支持' => boolean true 'GIF 创建支持' => boolean true 'JPG 支持' => boolean true 'PNG 支持' => boolean true

      谢谢你的回复……我想就是这样

      【讨论】:

        猜你喜欢
        • 2012-12-21
        • 1970-01-01
        • 2021-12-22
        • 1970-01-01
        • 2010-11-17
        • 2012-01-22
        • 2014-05-31
        • 2011-08-04
        • 2012-01-24
        相关资源
        最近更新 更多