K9 通用版 博客版 主题版 地方门户版 企业版 |   企业(ASP) 分类 使用 分享 疑问 模板 建议 帮助 错误 其他
+新建主题 [Ajax]
填写帐号密码即可完成注册
+新建话题 最新回复排序 最新主题排序 精华帖子

生成的缩略图是黑色的解决方案

1Next >

youjoy 发表于:13-09-13 21:49 编辑于:09-13 21:51 [添加收藏] 楼主 [回复] #Top#
youjoy 人气:235 积分:736 金币:5448
VIP

找到:

system/lib/func.php

大约577行:$im=imagecreatetruecolor($width, $height);

在这行下面增加以下代码:

//模板标签中没有position参数时要增加这个判断
    if(!(is_numeric($x) && is_numeric($y)))
    {//youjoy 20130913
        $x = 0;
        $y = 0;
    }

---------------------------------------------

问题的原因,可能是在模板标签中(如 {king:image border='rectangle' empty='rectangle' width='360' height='196'/} 这种),没有定义postion导致x与y没有值造成的

另外:如果想要生成的缩略图没有边框,直接把border='rectangle'  和empty='rectangle' 去掉就可以了。最简单的,就写成这样子:

{king:image width='360' height='196'/}   就OK


youjoy 发表于:13-09-13 21:54 沙发 [回复] #Top#
youjoy 人气:235 积分:736 金币:5448
VIP
话说一直在等K9出来,这个问题其实很早就遇到了,之前也懒得找原因了。
现在没办法,还是要在K6的基础上补一补,呵呵。
miscent 发表于:13-09-27 19:21 4楼 [回复] #Top#
miscent 人气:21 积分:60 金币:1637
Reply: 楼主
非常感谢...
tanwenkuan 发表于:13-12-23 12:36 5楼 [回复] #Top#
tanwenkuan 人气:91 积分:183 金币:3072
先做个记号吧~~~~~
yada 发表于:13-12-23 20:15 6楼 [回复] #Top#
yada 人气:0 积分:14 金币:110
VIP
来看看
fansxiao 发表于:13-12-24 09:56 7楼 [回复] #Top#
fansxiao 人气:0 积分:47 金币:30
做个脚印!!
pgzx995 发表于:18-03-17 21:43 8楼 [回复] #Top#
pgzx995 人气:0 积分:802 金币:2165
另一种解决方法,不错。
99163 发表于:24-09-18 08:55 10楼 [回复] #Top#
99163 人气:865 积分:1904 金币:6076
KC元老 灌水狂人
function kc_image($s, $attrib) {
    global $king;

    // 获取宽度、高度和类型参数
    $width = kc_val($attrib, 'width');
    $height = kc_val($attrib, 'height');
    $new_s = strpos(strtolower($s), "http://") > 0 ? $s : ROOT . $s;

    // 获取图片尺寸
    list($_width, $_height) = getimagesize($new_s);
    if (!$_width || !$_height) {
        return $s;  // 返回原始路径
    }

    // 计算缩放比例并确定缩放后的尺寸
    $ratio = max($width / $_width, $height / $_height); // 选择较大的比率进行缩放
    $scaled_width = intval($_width * $ratio);
    $scaled_height = intval($_height * $ratio);

    // 创建图像资源
    $ext = kc_f_ext($s);
    if (!in_array(strtolower($ext), ['jpg', 'jpeg', 'gif', 'png'])) {
        return $s;  // 不支持的文件格式
    }

    $fext = ($ext === 'jpg') ? 'jpeg' : strtolower($ext);
    $source = 'imagecreatefrom' . $fext;
    $source_resource = $source($new_s);
    $im = imagecreatetruecolor($scaled_width, $scaled_height);

    // 高质量重采样
    imagecopyresampled($im, $source_resource, 0, 0, 0, 0, $scaled_width, $scaled_height, $_width, $_height);

    // 裁剪图像以适应目标尺寸,中心裁剪
    $cropped_im = imagecreatetruecolor($width, $height);
    $crop_x = max(0, intval(($scaled_width - $width) / 2));
    $crop_y = max(0, intval(($scaled_height - $height) / 2));

    // 裁剪图像
    imagecopy($cropped_im, $im, 0, 0, $crop_x, $crop_y, $width, $height);

    // 添加空白部分
    addEmptySpace($cropped_im, $attrib, $width, $height);

    // 处理水印
    handleWatermark($cropped_im, $attrib, $king, $newimg);

    // 创建新目录和路径
    $newdir = dirname($s) . "/thumb_{$width}x{$height}"; // 新目录
    $newimg = trim($newdir, '/') . '/' . basename($s);
    kc_f_md($newdir);  // 创建缩略图目录

    // 保存缩略图
    $saveFunc = 'image' . $fext;
    $saveFunc($cropped_im, ROOT . $newimg, 100); // 设定为100以确保高清晰度

    // 释放内存
    imagedestroy($source_resource);
    imagedestroy($im);
    imagedestroy($cropped_im);

    return $king->config('inst') . $newimg; // 返回生成的缩略图路径
}

1Next >

发表回复

帐号 匿名发布 审核后可见 [加载完整在线编辑器]
内容
验证码
KingCMS 内容管理系统

关于我们 联系我们 广告报价 付款方式 站点导航

Copyright © 2004-2015 Focuznet All rights reserved.

广州唯众网络科技有限公司 粤ICP备08008106号