• Linux
  • apache
  • centos
  • Git版本管理
  • Linux基本命令
  • linux配置与优化
  • Nginx
  • PHP
  • Redis
  • Supervisor
  • Swoole
  • windows
  • THINKPHP
  • 开发者手册
  • Chat GPT / Open Ai
  • php如何使用imagecopyresampled(图像处理函数

    全屏阅读
  • 基本信息
  • 作者:
  • 作者已发布:925篇文章
  • 发布时间:2023年09月30日 23:35:19
  • 所属分类:PHP+MySql, PHP原生源码
  • 阅读次数:199次阅读
  • 标签:
  • image.png

    php图像处理函数imagecopyresampled用法

    语法

    bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )

    参数:

    dst_image
    目标图象连接资源。
    src_image
    源图象连接资源。
    dst_x
    目标 X 坐标点。
    dst_y
    目标 Y 坐标点。
    src_x
    源的 X 坐标点。
    src_y
    源的 Y 坐标点。
    dst_w
    目标宽度。
    dst_h
    目标高度。
    src_w
    源图象的宽度。
    src_h
    源图象的高度。

    成功时返回 TRUE, 或者在失败时返回 FALSE。

    案例

    1、图像裁减

    <?php
      $targ_w = $targ_h = 150; // 设置目标宽度与高度
      $jpeg_quality = 90; // 图片质量90,满分为100
      $src = 'demo_files/pool.jpg'; // 被处理的图片
      $img_r = imagecreatefromjpeg($src); // 获取原图
      $dst_r = ImageCreateTrueColor( $targ_w, $targ_h ); // 获取新图
      imagecopyresampled($dst_r,$img_r,0,0,$_POST['x'],$_POST['y'],
      $targ_w,$targ_h,$_POST['w'],$_POST['h']); // 目标图 源图 目标X坐标点 目标Y坐标点 源的X坐标点 源的Y坐标点 目标宽度 目标高度 源图宽度 源图高度
      header('Content-type: image/jpeg');
      imagejpeg($dst_r,null,$jpeg_quality); // 输出图象到浏览器或文件
    ?>

    2、重新取样

    <?php
    // 源文件
    $filename = '1.jpg';
    // 设置最大宽高
    $width = 400;
    $height = 400;
    // Content type
    header('Content-Type: image/jpeg');
    // 获取新尺寸
    list($width_orig, $height_orig) = getimagesize($filename);
    $ratio_orig = $width_orig/$height_orig;
    if ($width/$height > $ratio_orig) {
      $width = $height*$ratio_orig;
    } else {
      $height = $width/$ratio_orig;
    }
    // 重新取样
    $image_p = imagecreatetruecolor($width, $height);
    $image = imagecreatefromjpeg($filename);
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
    // 输出
    imagejpeg($image_p, null, 100);
    ?>

    附上上传图片的三种思路

    1. 选择图片,提交表单,服务器统一处理上传,保存路径

    2. 选择图片,上传,获取路径,提交表单,保存路径

    3. 选择图片,上传到服务器,通过某种途径获取到服务器的图片,保存到本地

    顶一下
    (0)
    100%
    订阅 回复
    踩一下
    (0)
    100%
    » 郑重声明:本文由mpxq168发布,所有内容仅代表个人观点。版权归恒富网mpxq168共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。
  • 【上一篇】
  • 【下一篇】
  • 目前有 0 条留言 其中:访客:0 条, 博主:0 条

    给我留言

    您必须 [ 登录 ] 才能发表留言!