• php图片截取代码说明


    <?php
    $src_img = "img/test.jpg"; //原图
    $dst_w = 320;
    $dst_h = 240; //目标

    list($width, $height) = getimagesize($src_img);   //getimagesize得到图片的长宽

    $dst_scale = $dst_h/$dst_w ;
    $src_scale = $height/$width ;

    if($src_scale >= $height) { //过高
    echo "too height";
    $w = intval($width);
    $h = intval($dst_scale * $w);
    $x = 0;
    $y = ($height - $h)/3;
    }
    else { //过宽
    echo "too width";
    $h = intval($height);
    $w = intval($h/$dst_scale);
    $x = ($width - $w)/2; //这个数字没有太多的意义感觉
    $y = 0;
    }
    $source=imagecreatefromjpeg($src_img);   //imagecreatefromjpeg从url或者文件创建一个图像标识符,可以理解为从给定的文件名获取到图像
    $croped=imagecreatetruecolor($w, $h);  //imagecreatetruecolor创建真彩色图像,包含的两个参数是宽和高
    imagecopy($croped,$source,0,0,$x,$y,$width,$height);  //从源文件拷贝一部分到目标文件

    /*

    * imagecopy函数说明:

    * bool imagecopy ( resource $dst_im, resource $src_im, int $dst_x, int $dst_y, int $src_x, int $src_y, int $src_w, int $src_h )

    * 将 src_im 图像中坐标从 src_xsrc_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。

    */

    $scale = $dst_w/$w;
    $target = imagecreatetruecolor($dst_w, $dst_h);
    $final_w = intval($w*$scale);
    $final_h = intval($h*$scale);
    imagecopyresampled($target,$croped,0,0,0,0,$final_w,$final_h,$w,$h);  //php中缩放图片的函数.
    //imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h)

    $timestamp = time();
    imagejpeg($target, "$timestamp.jpg");
    imagedestroy($target);
    echo "<img src=\"$timestamp.jpg\"> ";

    ?>

  • 相关阅读:
    POJ 3687 Labeling Balls <<拓扑排序
    FATFS 初学之 f_mount
    STM8 低功耗时钟管理
    还记得 C中带参宏的 "#"号吗?
    8.9并发编程(一)
    8.8网络编程(三)
    8.7网络编程(二)
    8.6网络编程(一)
    7.30反射、元类及项目生命周期
    7.29多态
  • 原文地址:https://www.cnblogs.com/liuke/p/2491816.html
Copyright © 2020-2023  润新知