使用PHP GD库创建缩略图时,我应该为每个特定的显示尺寸创建一个缩略图,还是应该创建一个稍微大一点的缩略图然后让浏览器缩小它以获得灵活性?
我见过几个网站,他们会显示大小如下的缩略图:
github上
230x230 70x70 100x100 40x40 48x48 16x16x 20x20
堆栈溢出
32x32
Quora的
32x32 40x40
他们是否为每种尺寸创建缩略图?或者他们例如在48x48有1个缩略图然后使用该缩略图以42x42,40x40,32x32显示?
在这种情况下看起来真的很糟糕之前,我可以伸展多远?我认为在70x70下显示230x230图像是没有意义的,在那种情况下,最好在70x70处创建另一个特定尺寸的缩略图,或者为灵活性创建像100x100这样大的缩略图。或者这是个坏主意?
网站如何做这些事情?他们是否创建了比显示尺寸或确切尺寸稍大的缩略图,如果是这样的话会增大多少?关于这个主题有哪些好的做法?
答案 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,我通常不会创建新的拇指。