//缩放图片
function resizeImage($im, $maxwidth, $maxheight, $name, $filetype)
{
    $pic_width = imagesx($im);
    $pic_height = imagesy($im);

    if (($maxwidth && $pic_width > $maxwidth) || ($maxheight && $pic_height > $maxheight)) {
        if ($maxwidth && $pic_width > $maxwidth) {
            $widthratio = $maxwidth / $pic_width;
            $resizewidth_tag = true;
        }

        if ($maxheight && $pic_height > $maxheight) {
            $heightratio = $maxheight / $pic_height;
            $resizeheight_tag = true;
        }

        if ($resizewidth_tag && $resizeheight_tag) {
            if ($widthratio < $heightratio)
                $ratio = $widthratio;
            else
                $ratio = $heightratio;
        }

        if ($resizewidth_tag && !$resizeheight_tag)
            $ratio = $widthratio;
        if ($resizeheight_tag && !$resizewidth_tag)
            $ratio = $heightratio;

        $newwidth = $pic_width * $ratio;
        $newheight = $pic_height * $ratio;

        if (function_exists("imagecopyresampled")) {
            $newim = imagecreatetruecolor($newwidth, $newheight);
            imagecopyresampled($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $pic_width, $pic_height);
        } else {
            $newim = imagecreate($newwidth, $newheight);
            imagecopyresized($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $pic_width, $pic_height);
        }

        $name = $name . $filetype;
        imagejpeg($newim, $name);
        imagedestroy($newim);
    } else {
        $name = $name . $filetype;
        imagejpeg($im, $name);
    }
}
// 用法如下
$img=imagecreatefromjpeg(\'./uploads/1.jpg\');

//生成缩放图片的名字
$imgname = md5(time());
resizeImage($im, 560, 996, $imgname, \'.jpg\');
$logo = imagecreatefromjpeg(\'./\' . $imgname . \'.jpg\');
ImageCopy($img, $logo, 40, 40, 0, 0, 560, 560);
 
 

 

版权声明:本文为snowXT原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xuehouxt/p/6039913.html