zoukankan      html  css  js  c++  java
  • 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\"> ";

    ?>

  • 相关阅读:
    [TJOI2018]教科书般的亵渎
    luogu P4781 【模板】拉格朗日插值
    [SDOI2010]捉迷藏
    [CQOI2016]K远点对
    BZOJ4066 简单题
    [国家集训队]JZPFAR
    Understanding User and Kernel Mode
    Linux下如何查看系统启动时间和运行时间以及安装时间
    CentOS Linux搭建独立SVN Server全套流程(修改svn仓库地址、服务启动等)
    linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合:
  • 原文地址:https://www.cnblogs.com/liuke/p/2491816.html
Copyright © 2011-2022 走看看