|
目前,帖子发贴批量上传图片超过5张,会在帖子阅读页显示小图,但是小图目前是按照200*150的比例进行压缩的,但是在前台显示的时候样式去按照120*120来显示。结果就感觉图片是按照中心来切割压缩的。实际上,压缩是等比压缩的,只是不是按照原来图片的宽高比,而是强制按照200*150压缩了。 前台显示代码如下: - <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');">
样式代码: - .imgList .tac img {
- width: 120px;
- height: 120px;
- }
结果就是显示不全了。 所以这块改进下,实现就是在压缩的时候按照图片原来的宽高等比,压缩后按照宽为120,高的话就按照之前的宽高比进行压缩。举个例子: 比如,原先图片是宽:200px 高是100px,那么压缩后宽变成120px,那么高=100*(120/200)=60px 这样压缩后,在上面的样式下就能显示压缩后的全部图片内容,就类似等比压缩后一样。修改代码如下: 打开lib/upload.class.php文件, 找到: - $thumbInfo = PwUpload::makeThumb($source, $bhv->getThumbInfo($filename, $savedir), $bhv->ifftp, $ifthumb);
替换成: - $thumbInfo = PwUpload::makeThumb($source, $bhv->getThumbInfo($filename, $savedir, $img_size), $bhv->ifftp, $ifthumb);
发贴页面批量上传处理: 打开lib/upload/attmutiupload.class.php文件, 找到函数代码段: - function getThumbInfo($filename, $dir) {...}
替换成: - function getThumbInfo($filename, $dir, $img_size=array()) {
- $miniWidth = $miniHeight = 120;
- if (!empty($img_size)){
- if ($img_size['width'] >= $img_size['height']){
- $miniHeight = $img_size['height']*(120/$img_size['width']);
- $miniHeight > 120 && $miniHeight = 120;
- }else{
- $miniWidth = $img_size['width']*(120/$img_size['height']);
- $miniWidth > 120 && $miniWidth = 120;
- }
- }
- return array(
- array($filename, 'thumb/' . $dir, $this->thumbsize),
- array($filename, 'thumb/mini/' . $dir, $miniWidth."\t".$miniHeight."\t1")
- );
- }
以上实现图片的等比压缩,压缩后的图片宽 和 高 均不超过120px,然后在显示的时候,为了阅读页小图布局平整,将压缩图的宽和高均拉伸到120px。 这样就能达到缩略图片的内容完整显示,并且小图布局不会不平整了。 所以打开template/wind/read.htm文件, 找到: - <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} />
替换成: - <img id="att_pic_s_sub_$pic[aid]" src="$pic[miniUrl]" src_data="$pic[url]" onclick="readImg.show('$read[lou]', '$i');"{$picTitle} />
这样,你再测试下发贴批量上传图片的效果吧: 因为获取缩略图大小配置信息目前一个操作类都单独写了,所以都需要单独修改下: - 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) {
|