使用TimThumb自动生成完美缩略图

使用TimThumb自动生成完美缩略图

CludeChn
2013-03-10 / 0 评论 / 920 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2013年03月10日,已超过3440天没有更新,若内容或图片失效,请留言反馈。

TimThumb是一个非常神奇的第三方小文件,它可以任意裁剪图片大小。这一切都不需你手动操作,有了它,你可以为你博客文章缩略图进行定义裁剪,不用加载原本的大而笨重的高清图片,只需要加载裁剪后的缩略图,好处最大就在于减少页面加载时间喽!

修订版本:1.1

附件:timthumb.zip

使用方法

首先,想要使用timthumb,需要先确认主机是否支持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"/>

Wordpress下获取第一张图片地址

将下列代码添加至主题functions.php文件中

function catch_that_image() {
  global $post, $posts;
  $first_img = '';
  ob_start();
  ob_end_clean();
  $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
  $first_img = $matches [1] [0];
 
  if(empty($first_img)){ //Defines a default image
    $first_img = "/images/default.jpg";
  }
  return $first_img;
}

输出时,使用:

<?php echo catch_that_image() ?>

这样,完美的输出应为这样:

<img src="http://timthumb所在目录/timthumb.php?src=<?php echo catch_that_image() ?>&h=定义高度&w=定义宽度&zc=1"/>

来源:http://www.microhu.cn/use-timthumb-make-thumb-img.html

0

评论 (0)

取消