囧。。又是一篇技术文。。。地球人都知道,如果直接使用 width 等标签直接改变图片长宽的话难免会有失真,而用 auto 的话,就会显得不统一,那么如何生成“完美”的缩略图呢?难道只能手动裁剪再上传?没那么麻烦!下面我们就请出国外 WordPress 常用的缩略图神器:TimThumb!
TimThumb 是一个非常神奇的第三方小文件,它可以任意裁剪图片大小。这一切都不需你手动操作,有了它,你可以为你博客文章缩略图进行定义裁剪,不用加载原本的大而笨重的高清图片,只需要加载裁剪后的缩略图,好处最大就在于减少页面加载时间喽!
其实我认识这款神器还是得益于在 Ben-lab 里,我偶然一次翻看 Ben 的缩略图代码的时候。(我会告诉你我天天去他那拿代码嘛?)
废话不多说,赶紧看看怎样使用!
使用方法
首先需要先确认主机是否支持 GD 库(一般主机都支持)下载 TimThumb.php 并将其上传到你的空间(我是上传在主题目录中的),然后在和 timthumb.php 同一个目录下,创建一个 cache 文件夹,如果你是 linux 主机,需要为 cache 文件夹提供写权限,我设置的权限为 777。
下面的在需要使用的地方贴上下面的代码就可以了:
<img src="http://timthumb所在目录/timthumb.php?src=图片地址&h=定义高度&w=定义宽度&zc=1"/>
那么,如何使用php函数来获取图片地址呢?下面我来分别介绍在WP和TE两个平台下获取第一张图片地址的方法。
Typecho 下获取第一张图片地址
将下列代码添加至主题 functions.php 文件中:
function img_postthumb($cid) {
$db = Typecho_Db::get();
$rs = $db->fetchRow($db->select('table.contents.text')
->from('table.contents')
->where('table.contents.cid=?', $cid)
->order('table.contents.cid', Typecho_Db::SORT_ASC)
->limit(1));
preg_match_all("/\<img.*?src\=\"(.*?)\"[^>]*>/i", $rs['text'], $thumbUrl); //通过正则式获取图片地址
$img_src = $thumbUrl[1][0]; //将赋值给img_src
$img_counter = count($thumbUrl[0]); //一个src地址的计数器
switch ($img_counter > 0) {
case $allPics = 1:
echo $img_src; //当找到一个src地址的时候,输出缩略图
break;
default:
echo ""; //没找到(默认情况下),不输出任何内容
};
}
输出时,使用:
<?php echo img_postthumb($this->cid); ?>
这样,完美的输出应为:
<img src="http://timthumb所在目录/timthumb.php?src=<?php echo img_postthumb($this->cid); ?>&h=定义高度&w=定义宽度&zc=1"/>
在White-M主题中添加TimThumb缩略图
White-M v3.0 均已支持在设置中开启缩略图选项。
最终效果
[timthumb.png]
盒盒:Micro-M Theme 也会增加此缩略图功能。
跟我用的是一样的。只是我在想要不要把timthumb与主域名分开来
分不分开速度应该都差不多的
板凳,孩纸你还没上学么
25日开学呢
- - 你真是个幸福的孩纸,还有你回复还能再快些么?
啦啦啦
http://wislab.net/archives/96.html 这难道是~你不知道的事 ~
知道呀,只不过这不一样吧?
用这种方法你不觉得安全很多么
囧。。。
啦啦啦,其实我很想知道缩略图有什么具体的存在价值 @_@
盒盒,你不觉得首页全是文字有点单调嘛,就像我的
呵呵,我觉得挺好的啊,简单明了,直接插入
好一个直接插入。。。文章都写了,给需要的人去弄吧
直接调用带格式的摘要各种不整齐= =
嗯嗯,价格文章缩略图好很多
打错字了 加个,不是价格
确实是这样呵呵
看完了还是不知道怎么用……
囧。。不是很详细了么。。只需要添加个函数然后输出就可以了
我之前有研究怎么把timthumb.php弄到SAE去,这样速度跟安全就有保证了。。。直至我遇到一个Bug然后我就放弃了= =
诶我在百度上看到了Timthumb的SAE版哦~
不烦恼的么?我试过,总NO MIME
囧,没亲测
使用时很方便··可惜 不能生成静态文件···
这个有静态化哦,缓存在Cache文件夹里~
不解释.
囧。。。
尼玛,在底下插个代码一下子就变成图片了.
评论框怎么插入代码的?
灌水啦啦啦~ 在我还不知道timthumb是什么的时候我的主题里面就自带了.后来才知道这是生成缩略图用的东西.
呵呵呵,貌似许多WP主题都有这个呢
我启用了评论框可以添加img~
不错吖
嘿嘿
wordpress。。。
你不也是WP嘛
这个不错啊,不过php的才行啊。看到你的src="http://ben-lab.com/thumb/timthumb.php?src... 还以为只要一个链接就能自动生成呢
盒盒,如果真能这样就好了~
请教博主,我用你提供的获取日志第一张图片的函数,导致整个包含日志的容器都没有显示是怎么回事?网页上只显示一个header了。WP的, 谢谢。
可能我这个函数有点问题,刚刚修复了,谢谢支持~
抓个虫子,博主文章中《?php echo catch_that_image() ?》中写错了,函数里定义的是catch_the_images
恩恩,谢谢报错,已经修正!
还是调用不了第一张图片,求解
您的网址?
谢谢博主,现在可以了。我的站还没上线喔:),下大本地折腾中。
盒盒,到时候我来参观参观~~
嗯嗯,可能还要过阵子呀,哈哈。
很棒的内容,详细而专业,支持一下
谢谢~!
呵呵,主题中自己包含了
盒盒,貌似好多主题都有这个
Thumb头疼啊头疼啊……截取刚搞定,现在发现自己做的Thumb大多很难看
我觉得还不错^ ^
好挖。。。TimThumb不产生新的图片就好了
囧,Cache嘛
高三党会这么多,真厉害。
囧,小弟初二呢~