【问题标题】:Convert Images with PHP without using ImageMagick在不使用 ImageMagick 的情况下使用 PHP 转换图像
【发布时间】:2011-04-26 16:25:42
【问题描述】:

我需要在不使用 ImageMagick 的情况下将我的 PHP 网页中的 .JPG、.JPEG、.JPE、.GIF 等转换为 .PNG。有什么想法吗?


这是我找到并尝试使用的代码:

<?php
header("content-type: image/png");
$original_filename = $_HTTP_POST_FILES['uploaded_file']; 
imagepng($original_filename,'border/testconvert.png',9);

?>

【问题讨论】:

标签: php image png jpeg


【解决方案1】:

谁需要 ImageMagick?用gd看一下内置的image functions

编辑基本示例:

<?php
 $filename = "myfolder/test.jpg";
 $jpg = @imagecreatefromjpeg($filename);
 if ($jpg)
 {
   header("Content-type: image/png");
   imagepng($jpg);
   imagedestroy($jpg);
   exit;
 }

 // JPEG couldn't be loaded, maybe show a default image
?>

您可以对此进行更多操作,例如更改压缩和质量值等,将输出保存到文件而不是输出到浏览器等等 - 查看文档以获取更多信息 :-)

请注意,如果加载图像时出现问题,图像函数会发出警告/通知等,因此使用 @ 符号进行抑制,否则您将获得虚假输出而不仅仅是图像数据。

【讨论】:

  • gd 也不总是可用的。你需要用--with-gd编译PHP。
  • 我可以使用 GD,我已经将它用于我的其他图像处理任务。我只是不知道如何转换图像。
  • 如果您允许多种文件类型,则必须设置检查以查看扩展名是什么并运行开关以根据文件类型加载图像或仅加载默认值图像如果它不匹配任何东西。
  • 这样就可以了!谢谢!
  • Re the @ -- 最好完全关闭页面的错误 (error_reporting(0);)。抑制单个错误会显着降低性能,即使没有发生错误。
【解决方案2】:
function jpg2png($originalFile, $outputFile, $quality) {
    $image = imagecreatefromjpeg($originalFile);
    imagepng($image, $outputFile, $quality);
    imagedestroy($image);
}

试试这样的。

告诉我是否有效!

祝你好运

【讨论】:

  • 这与第一个示例中使用的逻辑(ish)相同,是的.. 效果很好!但是,您是否知道将 .BMP 转换为 .PNG?
  • 不,但你应该真正开始一个关于那个特定主题的问题,因为这可能真的很有趣。祝你好运!
猜你喜欢
  • 1970-01-01
  • 2012-10-22
  • 2012-10-01
  • 2017-07-31
  • 2013-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-08
相关资源
最近更新 更多