论坛风格切换
  • 3357阅读
  • 2回复

[功能优化与改进]帖子图片批量上传小图按照等比缩略改进 [复制链接]

上一主题 下一主题
离线rickyleo
 

发帖
315
金币
0
威望
99
只看楼主 倒序阅读 使用道具 楼主  发表于: 2012-05-30
目前,帖子发贴批量上传图片超过5张,会在帖子阅读页显示小图,但是小图目前是按照200*150的比例进行压缩的,但是在前台显示的时候样式去按照120*120来显示。结果就感觉图片是按照中心来切割压缩的。实际上,压缩是等比压缩的,只是不是按照原来图片的宽高比,而是强制按照200*150压缩了。
前台显示代码如下:
  1. <img id="att_pic_s_sub_141" src="images/blank.gif" style="background:url(attachment/thumb/mini/Mon_1205/2_1_01bce6f30cf34e2.jpg) center center no-repeat" src_data="attachment/Mon_1205/2_1_01bce6f30cf34e2.jpg" onclick="readImg.show('0', '3');">
样式代码:
  1. .imgList .tac img {
  2. width: 120px;
  3. height: 120px;
  4. }
结果就是显示不全了。
所以这块改进下,实现就是在压缩的时候按照图片原来的宽高等比,压缩后按照宽为120,高的话就按照之前的宽高比进行压缩。举个例子:
比如,原先图片是宽:200px  高是100px,那么压缩后宽变成120px,那么高=100*(120/200)=60px
这样压缩后,在上面的样式下就能显示压缩后的全部图片内容,就类似等比压缩后一样。修改代码如下:
打开lib/upload.class.php文件,
找到:
  1. $thumbInfo = PwUpload::makeThumb($source, $bhv->getThumbInfo($filename, $savedir), $bhv->ifftp, $ifthumb);
替换成:
  1. $thumbInfo = PwUpload::makeThumb($source, $bhv->getThumbInfo($filename, $savedir, $img_size), $bhv->ifftp, $ifthumb);
发贴页面批量上传处理:
打开lib/upload/attmutiupload.class.php文件,
找到函数代码段:
  1. function getThumbInfo($filename, $dir) {...}
替换成:
  1. function getThumbInfo($filename, $dir, $img_size=array()) {
  2.         $miniWidth = $miniHeight = 120;
  3.         if (!empty($img_size)){
  4.             if ($img_size['width'] >= $img_size['height']){
  5.                 $miniHeight = $img_size['height']*(120/$img_size['width']);
  6.                 $miniHeight > 120 && $miniHeight = 120;
  7.             }else{
  8.                 $miniWidth = $img_size['width']*(120/$img_size['height']);
  9.                 $miniWidth > 120 && $miniWidth = 120;
  10.             }          
  11.         }
  12.         return array(
  13.             array($filename, 'thumb/' . $dir, $this->thumbsize),
  14.             array($filename, 'thumb/mini/' . $dir, $miniWidth."\t".$miniHeight."\t1")
  15.         );
  16.     }

以上实现图片的等比压缩,压缩后的图片宽 和 高 均不超过120px,然后在显示的时候,为了阅读页小图布局平整,将压缩图的宽和高均拉伸到120px。
这样就能达到缩略图片的内容完整显示,并且小图布局不会不平整了。
所以打开template/wind/read.htm文件,
找到:
  1. <img id="att_pic_s_sub_$pic[aid]" src="$imgpath/blank.gif" style="background:url($pic[miniUrl]) center center no-repeat" src_data="$pic[url]" onclick="readImg.show('$read[lou]', '$i');"{$picTitle} />
替换成:
  1. <img id="att_pic_s_sub_$pic[aid]" src="$pic[miniUrl]" src_data="$pic[url]" onclick="readImg.show('$read[lou]', '$i');"{$picTitle} />
这样,你再测试下发贴批量上传图片的效果吧:


因为获取缩略图大小配置信息目前一个操作类都单独写了,所以都需要单独修改下:
  1. function getThumbInfo($filename, $dir) {...}
这里列出通过检索function getThumbInfo( 得到的结果:
./lib/upload.class.php:    function getThumbInfo() {
./lib/upload/attmodify.class.php:    function getThumbInfo($filename, $dir) {
./lib/upload/diaryupload.class.php:    function getThumbInfo($filename, $dir) {
./lib/upload/diaryupload.class.php:    function getThumbInfo($filename, $dir) {
./lib/upload/photoupload.class.php:    function getThumbInfo($filename, $dir) {
./lib/upload/pcupload.class.php:    function getThumbInfo($filename, $dir) {
./lib/upload/attupload.class.php:    function getThumbInfo($filename, $dir) {
./lib/upload/activityupload.class.php:    function getThumbInfo($filename, $dir) {
./lib/upload/modifyattach.class.php:    function getThumbInfo($filename, $dir) {
./lib/upload/attmutiupload.class.php:    function getThumbInfo($filename, $dir, $img_size=array()) {
./lib/upload/activeupload.class.php:    function getThumbInfo($filename, $dir) {
./lib/upload/activeupload.class.php:    function getThumbInfo($filename, $dir) {
./lib/upload/activeupload.class.php:    function getThumbInfo($filename, $dir) {
./mode/cms/lib/upload/articleupload.class.php:    function getThumbInfo($filename, $dir) {
./mode/cms/lib/upload/articleupload.class.php:    function getThumbInfo($filename, $dir) {
./mode/cms/lib/upload/articleupload.class.php:    function getThumbInfo($filename, $dir) {












本帖提到的人: @太史慈 @王颖 @prisk
2条评分bug优化分+1金币+5
prisk 金币 +5 地球已经无法阻止你了 2012-06-01
云天河 bug优化分 +1 给你个好评哦亲~ 2012-05-30
离线oxyvzxrh

发帖
3
金币
0
威望
0
只看该作者 沙发  发表于: 2012-10-18
顶起来,受教了,支持支持<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>保养皮肤的方法
离线chlqjmlz

发帖
6
金币
0
威望
4
只看该作者 板凳  发表于: 2012-10-19
低!价!出!售+雅马哈2千,豪爵1千-本田2千-嘉陵1千-等摩~托
温馨提示:需要购车的朋友请联系,13519213038订车电话。也可以上 QQ, 1131985003 空间相册选好车,再电话联系我购买。QQ不做为聊天工具。
品牌摩`托车:雅马哈、铃木、福禧、巧格、迅鹰、豪爵、钻豹、钱江、五羊本田、新大州本田、川崎、宝马等各款摩托车和等各款跑车,百分百原装配置,九成新以上,车况良好,质量绝对可靠。带有保修卡,合格证,在购车日起半个月内只要不是人为损坏 可退款或换车。交易爽快的朋友可赠送进口赛车服、头盔、手套、防盗器、雨具等配件。让你以最低的价格买最好的车!欢迎来电订购!
承诺一:信息真实、可靠,如有假冒,假一罚十!
承诺二:坚决抵制销售翻新车!坚持诚信为本的销售原则!
承诺三:在购车日起半个月内 只要不是人为损坏 可退款或换车。
希望你不要抱着玩玩的态度随意要求 看车 送车,诚心购买请订购
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
提到某人:
选择好友
上一个 下一个