爱资料 网 欢迎您的到来,我们在这里提供了免费网页模板、编程资料、开发资料、开发软件、在线工具
主页 > 编程资料 > Dedecms > dedecms中修改缩略图失真不清楚方法 自动截取图片居中部分【爱资料出品】

dedecms中修改缩略图失真不清楚方法 自动截取图片居中部分【爱资料出品】

作者:apizl 更新:2018-06-01 15:06:24 阅读:278次

适用dedecms版本5.7:

其他版本不适用。

找到如下目录文件:include/extend.func.php

最后面加上如下代码:

function thumb($imgurl, $width, $height, $bg = true) {
    global $cfg_mainsite, $cfg_multi_site;
    $thumb = eregi("http://", $imgurl) ? str_replace($cfg_mainsite, '', $imgurl) : $imgurl;
    list($thumbname, $extname) = explode('.', $thumb);
    $newthumb = $thumbname . '_' . $width . '_' . $height . '.' . $extname;
    if (!$thumbname || !$extname || !file_exists(DEDEROOT . $thumb))
        return $imgurl;
    if (!file_exists(DEDEROOT . $newthumb)) {
        if ($bg == true) {
            image_resize(DEDEROOT . $thumb, DEDEROOT . $newthumb, $width, $height);
        } else {
            image_resize(DEDEROOT . $thumb, DEDEROOT . $newthumb, $width, $height);
        }
    }
    return $cfg_multi_site == 'Y' ? $cfg_mainsite . $newthumb : $newthumb;
}

function image_resize($f, $t, $tw, $th) {
// 按指定大小生成缩略图,而且不变形,缩略图函数
    $temp = array(1 => 'gif', 2 => 'jpeg', 3 => 'png');

    list($fw, $fh, $tmp) = getimagesize($f);

    if (!$temp[$tmp]) {
        return false;
    }
    $tmp = $temp[$tmp];
    $infunc = "imagecreatefrom$tmp";
    $outfunc = "image$tmp";

    $fimg = $infunc($f);

    if ($fw / $tw > $fh / $th) {
        $fw = $tw * ($fh / $th);
    } else {
        $fh = $th * ($fw / $tw);
    }

    $timg = imagecreatetruecolor($tw, $th);
    imagecopyresampled($timg, $fimg, 0, 0, 0, 0, $tw, $th, $fw, $fh);
    if ($outfunc($timg, $t)) {
        return true;
    } else {
        return false;
    }
}

调用方法

[field:picname function='thumb(@me,232,141)'/] 232是截取图片宽  141是截取图片高度 

压缩缩略图片会自动生成在原文件同一个目录

QQ截图20151006195556.png

QQ截图20151006195612.png

文章由爱资料原创本文地址:https://www.apizl.com/archives/view-15761-1.html,转载请以链接形式标明本文地址!
Tag:
分享:
0