2015-06-19 93 views
1

使用PHP GD库创建缩略图时,应该为每个特定的显示大小创建一个缩略图,还是应该创建一个稍大的缩略图,然后让浏览器缩放它降低灵活性?使用PHP GD库创建图像时的最佳缩略图大小与显示大小

我看到一对夫妇的网站,他们显示类似大小的缩略图:

github上

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

堆栈溢出

32x32 

Quora的

32x32  40x40 

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

在这种情况下,在事情看起来很糟糕之前,我可以拉伸多少?我认为在70x70下显示230x230图像是毫无意义的,那么在70x70的尺寸下创建另一个缩略图可能更好,或者像100x100这样的更大的尺寸来获得灵活性。或者这是一个坏主意?

网站如何做这些事情?他们创造的缩略图是否比显示尺寸或确切尺寸稍大,如果是这种情况,则会增大多少?在这个问题上有什么好的做法?

回答

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

一般来说,如果差值不大于50像素更大,我不会创建一个新的拇指。