贾玉华
PW 8.7内测组
PW 8.7内测组
  • 发帖数1947
  • 铜币13439两
  • 威望2307点
  • 贡献1点
  • 注册日期2011-02-15
  • 最后登录2018-01-13
  • 社区居民
  • 忠实会员
  • 最爱沙发
阅读:3642回复:21

[求助]远程图片本地化qy288千赢国际如何生成缩略中图?

楼主#
更多 发布于:2017-03-13 11:50
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
http://www.phpwind.net/read/1179128
论坛中有一款远程图片本地化qy288千赢国际,说明下,是qy288千赢国际版的。个人测试感觉,这个比编辑器中集成的“远程图片下载”功能要好用得多,因为后者经常出现下载不了的情况。但qy288千赢国际版的有一个问题,就是不能生成缩略中图,这个不太完美。无奈本人不懂代码,研究了好几天,也尝试修改代码,一直没能实现。有简单的解决思路,但代码不会写,应该是修改remoteimg.class.php这个文件,主要是“处理图片保存相关动作”里面的代码。

通过getimagesize()函数获得图片的宽度,如果大于后台设置的缩略中图生成的宽度(一般高度都是不限制的,等比缩小),那么可以通过调用require/imgfunc.php文件里的Makethumb()函数生成缩略图。

不知道这个解决思路对不对,不知道有哪位大侠能帮忙看下?@元芳 @孤独之虎 @魅柒 @魅惑乐趣
[贾玉华于2017-03-13 16:27编辑了帖子]
贾玉华
PW 8.7内测组
PW 8.7内测组
  • 发帖数1947
  • 铜币13439两
  • 威望2307点
  • 贡献1点
  • 注册日期2011-02-15
  • 最后登录2018-01-13
  • 社区居民
  • 忠实会员
  • 最爱沙发
沙发#
发布于:2017-03-13 11:56
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
魅柒
论坛版主
论坛版主
  • 发帖数1775
  • 铜币17041两
  • 威望936点
  • 贡献0点
  • 注册日期2012-07-14
  • 最后登录2017-09-25
  • 社区居民
  • 忠实会员
  • 最爱沙发
  • 社区明星
板凳#
发布于:2017-03-13 22:17
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
很简单~先获取到本地~在用图像例如gd库的php接口对原图裁切~
贾玉华
PW 8.7内测组
PW 8.7内测组
  • 发帖数1947
  • 铜币13439两
  • 威望2307点
  • 贡献1点
  • 注册日期2011-02-15
  • 最后登录2018-01-13
  • 社区居民
  • 忠实会员
  • 最爱沙发
3楼#
发布于:2017-03-14 09:00
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
魅柒:很简单~先获取到本地~在用图像例如gd库的php接口对原图裁切~回到原帖
对于大神来说,再简单不过的事情,对于我等来说,都是难如登天!加一个简单的判断条件,或者是稍微改动一处代码或许能够做到,但写代码,就完全没可能了。
贾玉华
PW 8.7内测组
PW 8.7内测组
  • 发帖数1947
  • 铜币13439两
  • 威望2307点
  • 贡献1点
  • 注册日期2011-02-15
  • 最后登录2018-01-13
  • 社区居民
  • 忠实会员
  • 最爱沙发
4楼#
发布于:2017-03-14 10:47
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
require/imgfunc.php文件里的类似Makethumb()和modeImageThumb()是不是生成缩略图的函数?如何调用生成缩略图?
function MakeThumb($srcFile, &$dstFile, $dstW, $dstH, $cenTer = null, $sameFile = null, $fixWH = null) { global $db_quality; $minitemp = GetThumbInfo($srcFile, $dstW, $dstH, $cenTer); list($imagecreate, $imagecopyre) = GetImagecreate($minitemp['type']); if (empty($minitemp) || !$imagecreate) return false; //if ((empty($sameFile) && $dstFile === $srcFile) || empty($minitemp) || !$imagecreate) return false; //!empty($sameFile) && $dstFile = $srcFile; $imgwidth = $minitemp['width']; $imgheight = $minitemp['height']; $srcX = $srcY = 0; if (!empty($cenTer)) { $dsDivision = $imgheight / $imgwidth; $fixDivision = $dstH / $dstW; if ($dsDivision > $fixDivision) { $tmpimgheight = $imgwidth * $fixDivision; $srcY = round(($imgheight - $tmpimgheight) / 2); $imgheight = $tmpimgheight; } else { $tmpimgwidth = $imgheight / $fixDivision; $srcX = round(($imgwidth - $tmpimgwidth) / 2); $imgwidth = $tmpimgwidth; } } $dstX = $dstY = 0; $thumb = $imagecreate($minitemp['dstW'], $minitemp['dstH']); if (function_exists('ImageColorAllocate') && function_exists('ImageColorTransparent')) { //背景透明处理 $black = ImageColorAllocate($thumb,0,0,0); $bgTransparent = ImageColorTransparent($thumb,$black); } $imagecopyre($thumb, $minitemp['source'], $dstX, $dstY, $srcX, $srcY, $minitemp['dstW'], $minitemp['dstH'], $imgwidth, $imgheight); MakeImage($minitemp['type'], $thumb, $dstFile, $db_quality); imagedestroy($thumb); return array( $minitemp['dstW'], $minitemp['dstH'] ); } function modeImageThumb($srcFile, $dstFile, $dstX, $dstY) { global $db_quality; $imgdata = array(); list($imgdata['width'], $imgdata['height'], $imgdata['type']) = @getimagesize($srcFile); switch ($imgdata['type']) { case 1: $imgdata['type'] = 'gif'; break; case 2: $imgdata['type'] = 'jpeg'; break; case 3: $imgdata['type'] = 'png'; break; default: return false; } if (!empty($imgdata) && function_exists('imagecreatefrom' . $imgdata['type'])) { $imagecreatefromtype = 'imagecreatefrom' . $imgdata['type']; } else { return false; } $imgdata['source'] = $imagecreatefromtype($srcFile); !$imgdata['width'] && $imgdata['width'] = imagesx($imgdata['source']); !$imgdata['height'] && $imgdata['height'] = imagesy($imgdata['source']); list($imagecreate, $imagecopyre) = GetImageCreate($imgdata['type']); $thumb = $imagecreate($dstX, $dstY); $color = @ImageColorAllocate($thumb, 255, 255, 255); @imagefilledrectangle($thumb, 0, 0, $dstX, $dstY, $color); $pX = $pY = $pW = $pH = 0; if ($dstX && !$dstY) { $dstY = $imgdata['height'] * $dstX / $imgdata['width']; } else if (!$dstX && $dstY) { $dstX = $imgdata['width'] * $dstY / $imgdata['height']; } $p = ($dstX / $dstY); if ($imgdata['width'] / $imgdata['height'] > $p) { //说明宽度太大 $pH = $dstY; $pW = $pH * $p; $imgdata['width'] = $imgdata['height']*$p; } else { $pW = $dstX; $pH = $pW / $p; $imgdata['height'] = $imgdata['width']/$p; } $imagecopyre($thumb, $imgdata['source'], 0, 0, 0, 0, $pW, $pH, $imgdata['width'], $imgdata['height']); MakeImage($imgdata['type'], $thumb, $dstFile, $db_quality); imagedestroy($thumb); return 1; }
贾玉华
PW 8.7内测组
PW 8.7内测组
  • 发帖数1947
  • 铜币13439两
  • 威望2307点
  • 贡献1点
  • 注册日期2011-02-15
  • 最后登录2018-01-13
  • 社区居民
  • 忠实会员
  • 最爱沙发
5楼#
发布于:2017-03-14 10:49
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
代码实在是拼凑不出来,谁能给写一写?
魅惑乐趣
荣誉会员
荣誉会员
  • 发帖数3399
  • 铜币331两
  • 威望4460点
  • 贡献1554点
  • 注册日期2005-05-14
  • 最后登录2017-12-18
  • 社区明星
  • 社区居民
  • 优秀版主奖
6楼#
发布于:2017-03-14 16:13
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
//ruinjoy 缩略图 global $db_ifathumb,$db_athumbsize; if($db_ifathumb){ require_once (R_P . 'require/imgfunc.php'); $ifthumb = $db_ifathumb; if ($this->forum->forumset['ifthumb'] == 0) { $thumbsize =$db_athumbsize; } elseif ($this->forum->forumset['ifthumb'] == 1) { $thumbsize =$pwforum->forumset['thumbsize']; } elseif ($this->forum->forumset['ifthumb'] == 2) { $thumbsize = 0; $ifthumb = 0; } else { $thumbsize = $db_athumbsize; } if($ifthumb){ $getThumbInfo = array( array($filename, 'thumb/' . $savedir, $thumbsize), array($filename, 'thumb/mini/' . $savedir, "200\t150\t$db_athumbtype") ); PwUpload::makeThumb($source, $getThumbInfo, $this->db_ifftp, $ifthumb); } } //ruinjoy
加这个下面// 下载图片文件 if (!$this->downFile($value, $source, $ext)) { // Showmsg('获取远程图片失败,图片可能不存在,或做了防盗链如果不是上述情况,请检查您的环境配置是否正确!'); } else { $ifDone = TRUE; } if($ifDone) {
jushang6
四星会员
四星会员
  • 发帖数5273
  • 铜币6404两
  • 威望45点
  • 贡献0点
  • 注册日期2013-08-10
  • 最后登录2017-09-05
  • 社区居民
  • 最爱沙发
7楼#
发布于:2017-03-14 17:00
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
完全看不懂,呵呵。
贾玉华
PW 8.7内测组
PW 8.7内测组
  • 发帖数1947
  • 铜币13439两
  • 威望2307点
  • 贡献1点
  • 注册日期2011-02-15
  • 最后登录2018-01-13
  • 社区居民
  • 忠实会员
  • 最爱沙发
8楼#
发布于:2017-03-14 19:46
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
魅惑乐趣://ruinjoy 缩略图
global $db_ifathumb,$db_athumbsize;
if($db_ifathumb){
    require_once (R_P . 'require/imgfunc.php');
...
回到原帖
非常感谢,测试成功!说实话,我是把唯一的希望寄托在了你这儿,没想到你真的去研究而且做到了,我很感动!来官方的人不多了,而且愿望去帮助别人的就更少了,这真的没什么。因为之前,听过一句话,现在还记得:帮你是人情,不帮你是本份。算上上次关于拆分帖不能编辑的问题(虽然我的笨方法也算是解决方案,不过还是你的最好),你至少帮我两次了,说真的,我还是很感谢你!人海茫茫,相聚是缘,可在网络上,你我都是未曾谋面,甚至彼此从没有也可能从不会有交集。也许你觉得没什么,但对于我来说,就是最大的帮助。我想,至少解决这个问题,也得花费你个巴小时左右,你能为一个不相干的人去帮忙,很感谢你!哈哈,打了一些字,总之就是表示感谢!谢谢你!
贾玉华
PW 8.7内测组
PW 8.7内测组
  • 发帖数1947
  • 铜币13439两
  • 威望2307点
  • 贡献1点
  • 注册日期2011-02-15
  • 最后登录2018-01-13
  • 社区居民
  • 忠实会员
  • 最爱沙发
9楼#
发布于:2017-03-14 19:57
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
魅惑乐趣://ruinjoy 缩略图
global $db_ifathumb,$db_athumbsize;
if($db_ifathumb){
    require_once (R_P . 'require/imgfunc.php');
...
回到原帖
补充下,稍后的'ifthumb'        => 0,似乎应该改为'ifthumb'        => $ifthumb,因为ifthumb=0在帖子阅读页调用的是附件原图。如果远程下载的图片宽度比较宽,比如大于800,就会“撑破”帖子内容表格,如果为1(或者3)的话,就是调用缩略中图。
个人理解,说得不准确,大意差不多。
贾玉华
PW 8.7内测组
PW 8.7内测组
  • 发帖数1947
  • 铜币13439两
  • 威望2307点
  • 贡献1点
  • 注册日期2011-02-15
  • 最后登录2018-01-13
  • 社区居民
  • 忠实会员
  • 最爱沙发
10楼#
发布于:2017-03-14 20:03
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
@魅惑乐趣 谢谢你!
魅惑乐趣
荣誉会员
荣誉会员
  • 发帖数3399
  • 铜币331两
  • 威望4460点
  • 贡献1554点
  • 注册日期2005-05-14
  • 最后登录2017-12-18
  • 社区明星
  • 社区居民
  • 优秀版主奖
11楼#
发布于:2017-03-16 16:29
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
贾玉华:补充下,稍后的'ifthumb'        => 0,似乎应该改为'ifthumb'        => $ifthumb,因为ifthumb=0在帖子阅读页调用的是附件原图。如果远程下载的图片宽度比较宽,比如大于800,就会“撑破”帖...回到原帖
是的。需要改成$ifthumb。我忘记加上了。不客气。
贾玉华
PW 8.7内测组
PW 8.7内测组
  • 发帖数1947
  • 铜币13439两
  • 威望2307点
  • 贡献1点
  • 注册日期2011-02-15
  • 最后登录2018-01-13
  • 社区居民
  • 忠实会员
  • 最爱沙发
12楼#
发布于:2017-03-17 09:05
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
魅惑乐趣:是的。需要改成$ifthumb。我忘记加上了。不客气。回到原帖
再次对你所给予的帮助表示深深的感谢!
哆嗦
六星会员
六星会员
  • 发帖数19669
  • 铜币457两
  • 威望3022点
  • 贡献2点
  • 注册日期2006-07-24
  • 最后登录2017-12-10
13楼#
发布于:2017-09-08 23:08
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
你QQ号是?
贾玉华
PW 8.7内测组
PW 8.7内测组
  • 发帖数1947
  • 铜币13439两
  • 威望2307点
  • 贡献1点
  • 注册日期2011-02-15
  • 最后登录2018-01-13
  • 社区居民
  • 忠实会员
  • 最爱沙发
14楼#
发布于:2017-09-09 12:25
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
哆嗦:你QQ号是?回到原帖
现在很少登录了,如果有什么事,可以在这里说,我天天都来看看的,看望8.7。
上一页
游客

返回顶部