使用PHP GD库创建图像时,最佳缩略图大小与显示大小

时间:2015-06-19 22:33:38

标签: php

使用PHP GD库创建缩略图时,我应该为每个特定的显示尺寸创建一个缩略图,还是应该创建一个稍微大一点的缩略图然后让浏览器缩小它以获得灵活性?

我见过几个网站,他们会显示大小如下的缩略图:

  

github上

  230x230         70x70       100x100         40x40       48x48       16x16x      20x20
     

堆栈溢出

  32x32
     

Quora的

  32x32       40x40

他们是否为每种尺寸创建缩略图?或者他们例如在48x48有1个缩略图然后使用该缩略图以42x42,40x40,32x32显示?

在这种情况下看起来真的很糟糕之前,我可以伸展多远?我认为在70x70下显示230x230图像是没有意义的,在那种情况下,最好在70x70处创建另一个特定尺寸的缩略图,或者为灵活性创建像100x100这样大的缩略图。或者这是个坏主意?

网站如何做这些事情?他们是否创建了比显示尺寸或确切尺寸稍大的缩略图,如果是这样的话会增大多少?关于这个主题有哪些好的做法?

1 个答案:

答案 0 :(得分:0)

我想说这取决于你的需求。你也可以编写一个函数,在第一次调用时创建拇指。这个我曾经在第一次通话时创建了101x101px的拇指。

function getThumb($filename) {
    if(file_exists('uploads/'.$filename)) {
        if(file_exists('uploads/thumbs/'.$filename)) {
            return 'uploads/thumbs/'.$filename;
        } else {
            require_once('php/create_square_image.php');
            create_square_image('uploads/'.$filename, 'uploads/thumbs/'.$filename, 101);
            if(file_exists('uploads/thumbs/'.$filename)) {
                return 'uploads/thumbs/'.$filename;
            } else {
                return false;
            }
        }
    } else {
        return false;
    }
}

可在此处找到所需文件(create_square_image.php):https://github.com/danghoangthien/MediaGurusApp/blob/master/htinmotion/image_handle/create_square_image.php

如果差异不大于50px,我通常不会创建新的拇指。