2009-09-27 42 views
1

我的网站的用户上传图像,用作头像。我已经设置了2 MB的上传限制大小。在大多数地方,我只需要缩略图。但用户上传图像的分辨率要高得多。我将这些文件存储在我的文件系统上。减少用户头像的大小? - 创建缩略图

如何创建缩略图并将其存储为大型文件?

回答

3

根据您的安装/服务器设置,您有几种可能性。

我会说,我已经很从来没有见过没有GD服务器安装 - 为Imagick,它不太可能被默认安装:-(


另一种解决方案可能是调用convert命令行实用工具(它与ImageMagick的 - independantly的任何PHP扩展)。,使用类似exec叫它

优势,与,是,你将不会被memory_limit的限制,作为调整大小当然,这也意味着你的应用程序将依赖于一个外部工具,这并不总是很好...


如果有必要,有很多关于教程的教程GD;例如,那些你可能感兴趣的:

3

可以使用GD moduleImageMagick module来调整和收缩,任意上传的图片。

如果你谷歌周围的东西像“PHP图像调整器”,你会发现很多的例子。我倾向于使用GD,因为我有一些老旧的代码可以很好地工作。假设你有$srcImgPath发现已知上传JPEG图像,你可以不喜欢以下,其中$newWidth$newHeight是图像的新的大小你想要的:

list($width, $height, $type) = getimagesize($srcImgPath); 
$srcImg = imagecreatefromjpeg($srcImgPath); 
if ($srcImg === false) return false; 
$workImg = imagecreatetruecolor($newWidth,$newHeight); 
imagecopyresampled($workImg,$srcImg,0,0,0,0,$newWidth,$newHeight,$width,$height); 
imagejpeg($workImg,$newFilename,$quality); 

功能化作为适当,一定要指定$quality。您也可以很容易地将这些代码抽象出来处理gif和png。

0

Google AppEngine是不是装有PIL的子集?有可以使用的'调整大小'功能......并且最重要的是,您可以获得免费配额!

+1

但我没有使用Google AppEngine。 –

+0

这只是一个建议......自由周期总是很酷,不是? – jldupont