• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

php缩放处理png和jpg图片

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本例子介绍使用php自带的GD库对png和jpg图片进行放大和缩小处理

 

<?php
$target_width = 120; //目标图片宽度 $target_height = 150; //目标图片高度 $target_img = 'me.jpg'; //剪切图片 deal($target_width,$target_height,$target_img);  //调用主函数

 

主函数 

/**
 *主函数: 获取图片信息,准备参数
 */
function deal($target_width,$target_height,$target_img){
    $img_info=getimagesize($target_img);  // 获取原图尺寸

    $original_width=$img_info[0];       //原图片宽度
    $original_height=$img_info[1];       //原图片高度
    $original_mime=$img_info['mime'];
    $type=substr($original_mime,6);       //原本$original_mime值为'image/类型',通过从第六位字符开始截取得到图片类型


    $target_scale = $target_height/$target_width; //目标图像长宽比

    $original_scale = $original_height/$original_width; // 原图片长宽比

    if ($original_scale>=$target_scale){  // 过高
        $w = intval($src_w);
        $h = intval($target_scale*$w);

        $x = 0;
        $y = ($original_height - $h)/3;
    } else {                              // 过宽
        $h = intval($original_height);
        $w = intval($h/$target_scale);

        $x = ($original_width - $w)/2;
        $y = 0;
    }

    switch($type){
        case 'jpeg':
            dealjpg($target_img, $w, $h,$x, $y, $original_width, $original_height, $target_width, $target_height);  //调用处理jpg函数
            break;
        case 'png':
            dealpng($target_img, $w, $h,$x, $y, $original_width, $original_height, $target_width, $target_height); //调用处理png函数
            break;
        default:
            echo "请确认需要处理图片类型是否正确";
            break;
    }
}

 

处理jpg函数 

/**
 * 处理jpg函数
 */
function dealjpg($target_img, $w, $h,$x, $y, $original_width, $original_height, $target_width, $target_height){
    // 剪裁
    $source=imagecreatefromjpeg($target_img);  //创建一个新图象

    $croped=imagecreatetruecolor($w, $h);      //新建一个真彩色图像
    imagecopy($croped, $source, 0, 0, $x, $y, $original_width, $original_height); //拷贝图像的一部分

    // 缩放
    $scale = $target_width / $w;
    $target = imagecreatetruecolor($target_width, $target_height);   //新建一个真彩色图像
    $final_w = intval($w * $scale);
    $final_h = intval($h * $scale);
    imagecopyresampled($target, $croped, 0, 0, 0, 0, $final_w,$final_h, $w, $h);    //重采样拷贝部分图像并调整大小

    // 保存
    $timestamp = time();
    imagejpeg($target, "$timestamp.jpg");

    imagedestroy($target);
}

  

 处理png函数

/**
 * 处理png函数
 */
function dealpng($target_img,$w,$h,$x,$y,$original_width,$original_height,$target_width,$target_height){
    // 剪裁
    $source=imagecreatefrompng($target_img);

    $croped=imagecreatetruecolor($w, $h);      //新建一个真彩色图像
    imagecopy($croped, $source, 0, 0, $x, $y, $original_width, $original_height); //拷贝图像的一部分

    // 缩放
    $scale = $target_width / $w;
    $target = imagecreatetruecolor($target_width, $target_height);   //新建一个真彩色图像
    $final_w = intval($w * $scale);
    $final_h = intval($h * $scale);
    imagecopyresampled($target, $croped, 0, 0, 0, 0, $final_w,$final_h, $w, $h);    //重采样拷贝部分图像并调整大小

    // 保存
    $timestamp = time();

    imagepng($target, "$timestamp.png");
    imagedestroy($target);
}

  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
phpAjax基本格式发布时间:2022-07-10
下一篇:
php中-,=和::的区别发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap