如何解决帝国cms裁剪图片时的黑框问题

发布于 2022-11-09 13:04:51      浏览 202

如何解决帝国cms裁剪图片时的黑框问题

适用环境:

型号:台式机
系统:win10
版本:帝国cms 7.2

详情:

1、
抉信网,www.juexinw.com
在使用帝国cms搭建后台系统后,在生成标题图片时,只要是原图宽高比大于1,设置裁切宽高比不符合原图比例时,图片在裁切后都会出现黑框。网上找了较多类似的的解决办法,大体都是将原图图片裁剪后铺满目标图,无法保持原图按比例大小显示在目标图正中央。
如何解决帝国cms裁剪图片时的黑框问题
在使用帝国cms搭建后台系统后,在生成标题图片时,只要是原图宽高比大于1,设置裁切宽高比不符合原图比例时,图片在裁切后都会出现黑框。网上找了较多类似的的解决办法,大体都是将原图图片裁剪后铺满目标图,无法保持原图按比例大小显示在目标图正中央。
2、
抉信网,www.juexinw.com
起初觉得在图片裁切时给目标图渲染上白色就可以,但最后是我天真了,基本没效果,黑色边框依然在。裁切函数在“/e/class/gd.php”文件中的ResizeImage方法。
如何解决帝国cms裁剪图片时的黑框问题
起初觉得在图片裁切时给目标图渲染上白色就可以,但最后是我天真了,基本没效果,黑色边框依然在。裁切函数在“/e/class/gd.php”文件中的ResizeImage方法。
3、
抉信网,www.juexinw.com
后来发现,原图在裁切时使用了负坐标值,导致在渲染目标图时覆盖了白色背景。也就是说原图在负数到0的坐标间内容都是空的,被黑色替代。这下好了,具体原因也找到了,那么解决方法就简单多了。1、在“if($resize == 1)”代码位置前加上如下代码:
$tempx2      = 0;  // 定义目标图起始x坐标
$tempy2      = 0;  // 定义目标图起始y坐标
$wsize       = 0;  // 定义目标图渲染宽度

2、然后在“if($big_width > $big_height){....}”条件语句内末尾加入如下代码:
if($srcX<0)
{
    $tempx2 = ($max_width-($big_width/$big_height)*$max_height)/2; // 计算目标图渲染起始x坐标
    $tempy2 = 0;
    $srcX   = 0; // 将原图负值清零
    $tempx  = $big_width; // 原图宽度保持不变
    $wsize  = -($tempx2*2); //调整目标图渲染区宽度
}    

3、最后修改imagecopyresampled方法内的目标起始x和y值,同时修正目标图渲染宽度值即可,修改后的代码如下:
imagecopyresampled($temp_image, $big_image, $tempx2, $tempy2, $srcX, $srcY, ($new_width+$wsize), $new_height, $tempx, $tempy);
 

如何解决帝国cms裁剪图片时的黑框问题
后来发现,原图在裁切时使用了负坐标值,导致在渲染目标图时覆盖了白色背景。也就是说原图在负数到0的坐标间内容都是空的,被黑色替代。这下好了,具体原因也找到了,那么解决方法就简单多了。
4、
抉信网,www.juexinw.com
最终输出结果我以红色背景代替,可以清晰看到原图保持中间比例不变,无裁剪。同理,其他长宽比例可以根据这个思想去实践。
如何解决帝国cms裁剪图片时的黑框问题
最终输出结果我以红色背景代替,可以清晰看到原图保持中间比例不变,无裁剪。同理,其他长宽比例可以根据这个思想去实践。

插件/素材:

点击下载

上一篇:微信支付中aplv2和aplv3的区别 下一篇:电脑端字体在哪个文件夹

相关推荐

  • 如何显示win10系统隐藏的文件夹
    如何显示win10系统隐藏的文件夹 1、打开此电脑,选择【查看】选项卡,然后在工具栏中点击【选项】工具。2、在弹出的文件夹选项对话框中,点击【查看】选项。3、在高级……

    其他 发布于 2024-07-19 21:01:36 浏览 784

  • 帝国cms给用户赋予了栏目权限打开还是提示无权限操作
    帝国cms给用户赋予了栏目权限打开还是提示无权限操作 1、用管理员账号登录,点击顶部【用户】,左侧导航栏选择【管理用户】,点击【修改】。2、在【管理的栏目信息】项中,点击【全部取消】,点……

    其他 发布于 2024-04-07 17:40:24 浏览 541

  • 华为新旧手机如何一键换机
    华为新旧手机如何一键换机 1、在新手机上找到并打开【设置】工具。2、在设置界面中,找到并打开【系统】选项。3、点击【手机克隆】选项。4、点击【这是新设备……

    华为 发布于 2024-04-06 19:49:48 浏览 655

  • vivo手机丢了如何用另一个手机定位找回
    vivo手机丢了如何用另一个手机定位找回 1、打开手机浏览器,输入登录vivo云服务官网。2、点击右侧【账号登录】选项。3、输入账号和密码,然后点击【登录】。4、登录后,点击右……

    VIVO 发布于 2024-04-03 15:30:48 浏览 926

  • vivo如何设置云备份
    vivo如何设置云备份 1、打开手机里的【设置】工具。2、点击个人vivo账号。3、点击【云服务】选项。4、找到并打开【设备云备份】选项。5、打开【自动……

    VIVO 发布于 2024-04-03 13:38:48 浏览 648

  • vivo如何开启智慧视觉
    vivo如何开启智慧视觉 1、打开手机【设置】工具。2、找到并打开【更多设置】工具。3、找到并打开【辅助功能】选项。4、点击打开【智慧视觉】选项。5、……

    VIVO 发布于 2024-04-02 16:24:15 浏览 1767

  • 手机掉了如何定位追踪vivo
    手机掉了如何定位追踪vivo 1、打开vivo官网,下拉首页界面,找到并打开【查找手机】服务。2、点击【登录】按钮,登录云服务账号。3、选择【账号密码登录】选项并……

    VIVO 发布于 2024-04-02 16:16:37 浏览 368

  • vivo如何开启云实时同步
    vivo如何开启云实时同步 1、打开手机【设置】工具。2、点击已登录的vivo账号。3、在vivo账号页面,点击打开【云服务】选项。4、点击打开【数据同步】选项。……

    VIVO 发布于 2024-04-02 16:11:04 浏览 900

  • 如何设置vivo默认输入法
    如何设置vivo默认输入法 1、打开手机【设置】工具。2、点击打开【更多设置】选项。3、点击打开【输入法】选项。4、点击打开【默认输入法】选项。5、在弹……

    VIVO 发布于 2024-04-02 14:17:23 浏览 632

  • oppo手机如何读取U盘文件
    oppo手机如何读取U盘文件 1、准备好OTG数据线和一个U盘。2、打开手机【设置】工具。3、在设置界面中,找到并打开【其他设置】选项。4、打开【OTG链接】选项……

    OPPO 发布于 2024-04-01 10:33:16 浏览 662