使用PHP调整图像大小

时间:2011-12-04 14:02:33

标签: php image gd jpeg

我用一个非常简单的代码用PHP调整图像大小;但令人惊讶的是,它不适用于某些图像。问题应该与imagecreatefromjpeg()相关联,因为它会生成一个黑色图像(它是背景图像)。

$picture="test5.jpg";
$url="http://www.pokerpurist.com/uploadedImages/bettingpro/NewsImages/TN98553_Perla-Beltran.jpg";
list($width, $height) = getimagesize($url);

$new_height = $height / $width * 400;
$image_p = imagecreatetruecolor(400, $new_height);
$image = imagecreatefromjpeg($url);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, 400, $new_height, $width, $height);
imagejpeg($image_p, $picture);
echo "<img src='$picture' />";

这个问题发生了,我包含了一个示例图片。导致这个问题的这些图像有什么问题?这似乎是一个普通的JPG图像。

顺便说一下,用PHP / GD2调整图像大小是最简单有效的方法吗?

2 个答案:

答案 0 :(得分:2)

您的示例图片是PNG,而不是JPEG。您可能需要放置一些检测代码......

修改:exif-imagetypeImageMagick可能会有所帮助。

答案 1 :(得分:2)

@顺便问一下,用PHP / GD2调整图像大小是最简单有效的方法吗?

使用Asido:PHP图像处理解决方案

Asido支持以下功能:

  • GD2的可插拔驱动程序(php_gd2),MagickWand(php_magickwand), ImageMagick扩展(php_imagick)以及ImageMagick shell 命令
  • “hack”驱动程序:通过使用提供的某些其他功能来解决特定驱动程序的某些残疾问题 环境
  • 各种调整大小功能:按比例调整大小,仅按宽度或高度调整大小,拉伸调整大小,调整大小,调整帧大小
  • 水印图像,包括平铺水印和自动缩放大水印
  • 旋转图片
  • 将图像复制到另一个
  • 裁剪图片
  • 灰度图像
  • 在不同文件类型之间转换图像

如果您无法访问Asido网站,可以从SourceForge.net下载Asido