帝国论坛帝国网站管理系统交流区帝国CMS使用交流不失真批量自动生成标题缩略图调试成功,标题图片缩略太方便了 【本版专题贴子】  
 1/2     1 2 ›› ›|
主题:不失真批量自动生成标题缩略图调试成功,标题图片缩略太方便了 [加入收藏夹]   

小众人
用户头衔:书生

精华贴   :0
发贴数   :34
经验值   :132
注册时间:2007-07-26
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
不失真批量自动生成标题缩略图调试成功,标题图片缩略太方便了
以下功能可以实现批量修改帝国标题图片为不失真缩略图

本人用过很多cms,但感觉帝国用起来最好,尽管上手稍难。关注了很长时间,但一直未用来建站,放假在家,便全面的做了一个站,算是真正系统的学习了帝国的用法,感觉真好。但本人又懒惰成性,实在不愿意每篇文章都去添加标题图片,或远程存图后再修改图片大小,但不改,调用太慢,影响网页打开速度,这对追求速度的我来说,又是不可忍受的,于是,查看源文件,加了几段代码,实现批量修改标题图片成缩略图的功能,呵呵,有时懒惰也促进创新。

功能介绍:
1、在增加信息时,不管是取第一张上传图作为标题图片,或选择上传图片作为标题图片,都暂可不管图片大小,可以大图上传。
2、然后在管理信息下端,输入标题图片缩略图宽度和高度,在操作列选择需要修改的相关信息,然后点击“标题缩略图”即可将选中的所有信息的标题缩略图修改成所需大小
3、生成的标题缩略图文件名为在原来的主文件名后加"small"
4、系统自动判断:对没有标题图片的信息和已经缩略过的信息不再执行操作。
5、不失真缩略,如:要求宽100,高100,那么缩略过程,会自动裁剪,保证不失真,拉伸。
如下图:


上传以下图片:


[该贴被修改 4 次,最后修改时间 2007-07-26 15:36:12 ]



2007-07-26 11:33:10 已设置保密 顶部 回复 引用 报告 编辑 删除

小众人
用户头衔:书生

精华贴   :0
发贴数   :34
经验值   :132
注册时间:2007-07-26
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

实现这个功能,要修改几处源代码,增加两个函数,如果有需要的朋友,我会把修改方法贴出来。该功能是用于所有模型。




2007-07-26 11:35:53 已设置保密 顶部 回复 引用 报告 编辑 删除

小众人
用户头衔:书生

精华贴   :0
发贴数   :34
经验值   :132
注册时间:2007-07-26
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

再放个大图:


上传以下图片:





2007-07-26 11:43:58 已设置保密 顶部 回复 引用 报告 编辑 删除

wm_chief
用户头衔:管理员

精华贴   :21
发贴数   :48941
经验值   :114161
注册时间:2002-10-30
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

不错



[零基础入门教程] [模板制作教程] [采集使用教程]
2007-07-26 11:45:06 已设置保密 顶部 回复 引用 报告 编辑 删除

jaycn
用户头衔:探花

精华贴   :0
发贴数   :4930
经验值   :12030
注册时间:2007-07-19
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

支持分享出来。




2007-07-26 11:45:42 已设置保密 顶部 回复 引用 报告 编辑 删除

习斋
用户头衔:书生 *

精华贴   :0
发贴数   :9
经验值   :154
注册时间:2007-03-12
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]

希望楼主分享~~谢谢!




2007-07-26 13:36:54 已设置保密 顶部 回复 引用 报告 编辑 删除

天浪歌
用户头衔:嘉宾

精华贴   :3
发贴数   :1810
经验值   :4210
注册时间:2006-09-14
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

不错不错 支持楼主



ECMSer
有事就Q我 3260602 3260602@qq.com
帝国教程之猪头系列
2007-07-26 14:41:31 已设置保密 顶部 回复 引用 报告 编辑 删除

小众人
用户头衔:书生

精华贴   :0
发贴数   :34
经验值   :132
注册时间:2007-07-26
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 8 楼]

以下为修改方法:
一、首先,在t_functions.php中添加一下两个函数

function Titlepic_all ($id, $classid, $userid, $username, $pwidth, $pheight)
  {
    global $empire,$class_r,$class_zr,$dbtbpre,$keys;
    $count = count ($id);
    if (!$count)
    {
      printerror ('Noteditpic', 'history.go(-1)');
    }
    for ($i = 0; ($i < $count); ++$i)
    {
      $r = $empire->fetch1 ('select * from qiqu_ecms_'.$class_r[$classid][tbname].' where id='.$id[$i].' and titlepic<>""');
      if(!empty($r[id])){
          ImageResize("../../".$r[titlepic],$pwidth,$pheight,"");
          if ($keys==1) {
          $ss=substr($r[titlepic],0,-4)."s".substr($r[titlepic],-4);
          $update = $empire->query ('update qiqu_ecms_'.$class_r[$classid][tbname].' set titlepic="'.$ss.'" where id='.$id[$i]);
      }
          }
        }
printerror ('TitlepicAllSuccess', $_SERVER['HTTP_REFERER']);
  }
Function ImageResize($srcFile,$toW,$toH,$toFile="")
{
  global $keys;
  if($toFile==""){ $toFile = substr($srcFile,0,-4)."small".substr($srcFile,-4); }
  $info = "";
  $data = GetImageSize($srcFile,$info);
  switch ($data[2])
  {
  case 1:
    if(!function_exists("imagecreatefromgif")){
    echo "你的GD库不能使用GIF格式的图片,请使用Jpeg或PNG格式

!<a href='javascript:go(-1);'>返回</a>";
    exit();
    }
    $im = ImageCreateFromGIF($srcFile);
    break;
  case 2:
    if(!function_exists("imagecreatefromjpeg")){
    Echo "你的GD库不能使用jpeg格式的图片,请使用其它格式的图

片!<a href='javascript:go(-1);'>返回</a>";
    Exit();
    }
    $im = ImageCreateFromJpeg($srcFile);   
    break;
  case 3:
    $im = ImageCreateFromPNG($srcFile);   
    break;
}
$srcW = ImageSX($im);
$srcH = ImageSY($im);
$keys= 0;
if (($srcW>$toW) or ($srH>$toH)){
if(($srcW/$toW)>=($srcH/$toH)){
                $temp_height=$toH;
                $temp_width=$srcW/($srcH/$toH);
                $src_X=Abs(($toW-$temp_width)/2);
                $src_Y=0;
        }
        else{
                $temp_width=$toW;
                $temp_height=$srcH/($srcW/$toW);
                $src_X=0;
                $src_Y=Abs(($toH-$temp_height)/2);
                }
        $temp_img=ImageCreateTrueColor($temp_width,$temp_height);
        imagecopyResampled($temp_img,$im,0,0,0,0,$temp_width,$temp_height,$srcW,$srcH);
        $ni=ImageCreateTrueColor($toW,$toH);
        imagecopyResampled($ni,$temp_img,0,0,$src_X,$src_Y,$toW,$toH,$toW,$toH);

if(Function_exists('imagejpeg')) ImageJpeg($ni,$toFile);
  else ImagePNG($ni,$toFile);
  ImageDestroy($ni);
$keys= 1;
}
ImageDestroy($im);
}

上面两个函数为缩略图生成函数,请搜索"qiqu_"(为表的前缀)修改成你自己的前缀。

二、修改 e/admin/listnews.php,大约在42行左右“选中全部 </div></td></tr>”的后面添加以下代码:
<tr bgcolor="#FFFFFF">
<td height="25" colspan="7"><div align="right">
缩略图宽: <input name="pwidth" type="text" value="120" width="60">
缩略图高: <input name="pheight" type="text" value="120" width="60">
<input type="submit" name="Submit355" value="标题缩略图" onClick="document.listform.enews.value='Titlepic_all';">
</div></td></tr>
其中,图宽和图稿的默认值可按自己的情况设定,设定好后,以后操作更方便。

三、在e/admin/enews.php中添加如下代码:
//批量加标题图片
elseif($enews=="Titlepic_all")
{
        $id=$_POST['id'];
        $classid=$_POST['classid'];
        $bclassid=$_POST['bclassid'];
        $pwidth=$_POST['pwidth'];
        $pheight=$_POST['pheight'];
Titlepic_all($id,$classid,$logininid,$loginin,$pwidth,$pheight);
}

四、函数中用到“ printerror ('Noteditpic', 'history.go(-1)');”等操作提示,这个提示可加在e/data/language/gb/pub/message.php;当然这一步不加也不影响操作

五、本人已调试成功,并正在用,确实非常方便,所有缩略图只需鼠标点一点,便可批量改变,且不变形、不失真(可看看我的网站:www.qiworld.cn)。
有哪位朋友按此方法试验成功的请跟贴说明,
特别注意:在修改之前一定先备份相关文件,由此造成的损失本人概不负责。




2007-07-26 15:17:59 已设置保密 顶部 回复 引用 报告 编辑 删除

天浪歌
用户头衔:嘉宾

精华贴   :3
发贴数   :1810
经验值   :4210
注册时间:2006-09-14
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 9 楼]

请楼主另开一帖 给你特殊显示 感谢分享



ECMSer
有事就Q我 3260602 3260602@qq.com
帝国教程之猪头系列
2007-07-26 15:24:04 已设置保密 顶部 回复 引用 报告 编辑 删除

sostrom
用户头衔:书生

精华贴   :0
发贴数   :15
经验值   :49
注册时间:2007-07-22
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 10 楼]

出现错误
Table 'democno_web365.phome_download' doesn't exist
select * from phome_download where id=6 and titlepic<>""




2007-08-09 09:58:52 已设置保密 顶部 回复 引用 报告 编辑 删除
 1/2     1 2 ›› ›|

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1