当前位置:首页 > 技术 > 正文内容

php程序图片裁剪功能

醉清风2019-08-30技术5367
/**
 * 裁剪图片
 * $src_img 图片源文件
 * $dst_w 目标图片宽
 * $dst_h 目标图片高
 * $catid ,$id 该文章id栏目id
 */
function get_thumb_img($src_img,$dst_w,$dst_h,$catid,$id){
    //$src_img = ""; // 原图
 
    //$dst_w = 1240;
    //$dst_h = 700;
 
    list($src_w,$src_h)=getimagesize($src_img);  // 获取原图尺寸 
    $dst_scale = $dst_h/$dst_w; //目标图像长宽比
    $src_scale = $src_h/$src_w; // 原图长宽比 
    if ($src_scale>=$dst_scale){  // 过高
        $w = intval($src_w);
        $h = intval($dst_scale*$w);
     
        $x = 0;
        $y = ($src_h - $h)/3;
    } else { // 过宽
        $h = intval($src_h);
        $w = intval($h/$dst_scale);
     
        $x = ($src_w - $w)/2;
        $y = 0;
    }
     
    // 剪裁
    $source=imagecreatefromjpeg($src_img);
    $croped=imagecreatetruecolor($w, $h);
    imagecopy($croped, $source, 0, 0, $x, $y, $src_w, $src_h);
     
    // 缩放
    $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);
     
    // 保存
    imagejpeg($target, "/thumb/$catid-$id.jpg");
    imagedestroy($target);
}

$catid,$id用来命名生成图片的名称,这样就不会重复生成,保存路径可以自己设定。

扫描二维码至手机访问

扫描二维码推送至手机访问。

版权声明:本文由红柚酱发布,如需转载请注明出处。

转载请注明出处:https://www.notenet.cn/post/74.html

标签: phpredis

相关文章

laravel5.4总结--文件上传

laravel5.4总结--文件上传

1 配置文件系统的配置文件在 config/filesystems.php 文件中,此处我们新建一个uploads本地磁盘空间用于存储上传的文件,具体配置项及说明如下:<?php return...

Ubuntu安装最新版nodejs/ubuntu 安装nodejs+npm 升级

Ubuntu安装最新版nodejs/ubuntu 安装nodejs+npm 升级

sudo apt update -y sudo apt install -y nodejs nodejs-legacy...

jQuery实现的全选、反选和不选功能

jQuery实现的全选、反选和不选功能

适用于网页多选后需要进行批量操作的场景(如批量删除等)。如有问题希望大家可以指正。谢谢~~HTML我们的页面上有一个歌曲列表,列出多行歌曲名称,并匹配复选框供用户选择,并且在列表下方有一排操作按钮&l...

laravel ci TP3 TP5各个php开发框架的优缺点

laravel ci TP3 TP5各个php开发框架的优缺点

   laravel的优缺点:    【优点】:     1. 代码简洁优雅 &nbs...

php-fpm进程数管理

php-fpm进程数管理

PHP-FPM先来了解一些名词概念:CGI是Common Gateway Interface(通用网管协议),用于让交互程序和Web服务器通信的协议。它负责处理URL的请求,启动一个进程,将客户端发送...