如何使用timthumb.php调整大小API将图片保存为jpg或png格式

3
我正在使用流行的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...请帮忙。

什么浏览器?Chrome 试着将它保存为 JPEG 图像。 - Krzysztof
3个回答

1

Timthumb没有“另存为”选项(请参见开发者博客http://o7.no/biJTYD上的此回复)。Timthumbs将处理后的图像与源图像保存在相同的格式中。

我成功地通过以下解决方法(接近第742行)强制将源文件为“png”时保存为“jpg”。您可以在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); 

0
我只是使用来自此URL http://timthumb.googlecode.com/svn/trunk/timthumb.php 的timthumb.php。当我点击“另存为”时,默认文件名为“Imagename.php.jpeg”。在“.jpeg”之前可以更改名称。希望这可以帮到你。
我正在使用Ubuntu 10.4上的Firefox。
祝愉快。

0

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接