如何使用timthumb.php调整API来保存图像为jpg或png

时间:2011-12-12 11:39:19

标签: php image

我正在使用热门timthumb.php来调整图片大小。我成功地能够改变图像的高度和宽度,但每当我默认“保存为”时它会保存为php ..

例如,如果您尝试保存当前存在的图像 http://www.binarymoon.co.uk/demo/timthumb-basic/timthumb.php?src=castle1.jpg&w=400它保存为扩展名为php的文件..

我如何强制将其保存为png / jpg?我知道mime类型是image / jpg或image / png ....所有我想要的是默认情况下图像应保存为png或jpg ...请帮助

3 个答案:

答案 0 :(得分:1)

Timthumb没有“另存为”选项(请参阅开发者博客http://o7.no/biJTYD上的此回复http://www.binarymoon.co.uk/2010/11/timthumb-hints-tips/)。 Timthumbs使用与源图像相同的格式保存处理过的图像。

当源是“png”时,我成功地强制了“另存为jpg”(附近的第742行)。您可以安排在if-then-else链上进行其他转换。

if(preg_match('/^image\/(?:jpg|jpeg)$/i', $mimeType)){ 
        $imgType = 'jpg';
        imagejpeg($canvas, $tempfile, $quality); 
} else if(preg_match('/^image\/png$/i', $mimeType)){ 
        // ***************WORKAROUND STARTS HERE****************
        //$imgType = 'png';
        //imagepng($canvas, $tempfile, floor($quality * 0.09));
        $imgType = 'jpg';
        imagejpeg($canvas, $tempfile, $quality); 

答案 1 :(得分:0)

未经测试,但您可以在第1195行添加额外标题:

 header('Content-Length: ' . filesize($file));
 header('Content-Disposition: attachment; filename="' . basename($file) . '";'); 

答案 2 :(得分:0)

我只是使用此网址http://timthumb.googlecode.com/svn/trunk/timthumb.php中的timthumb.php 当我点击另存为时,默认文件名是“Imagename.php.jpeg”。并且能够在“.jpeg”之前更改名称。这可以帮到你。

我在ubuntu 10.4上使用Firefox。

享受