剪裁代码

<?php
/**
* 图像裁剪
* @param $title string 原图路径
* @param $content string 需要裁剪的宽
* @param $encode string 需要裁剪的高
*/
function imagecropper($source_path, $target_width, $target_height)
{$source_info = getimagesize($source_path);
$source_width = $source_info[0];
$source_height = $source_info[1];
$source_mime = $source_info['mime'];
$source_ratio = $source_height / $source_width;
$target_ratio = $target_height / $target_width;// 源图过高
if ($source_ratio > $target_ratio)
{$cropped_width = $source_width;
$cropped_height = $source_width * $target_ratio;
$source_x = 0;
$source_y = ($source_height - $cropped_height) / 2;
}
// 源图过宽
elseif ($source_ratio < $target_ratio)
{$cropped_width = $source_height / $target_ratio;
$cropped_height = $source_height;
$source_x = ($source_width - $cropped_width) / 2;
$source_y = 0;
}
// 源图适中
else
{$cropped_width = $source_width;
$cropped_height = $source_height;
$source_x = 0;
$source_y = 0;
}switch ($source_mime)
{case 'image/gif':
$source_image = imagecreatefromgif($source_path);
break;case 'image/jpeg':
$source_image = imagecreatefromjpeg($source_path);
break;case 'image/png':
$source_image = imagecreatefrompng($source_path);
break;default:
return false;
break;
}$target_image = imagecreatetruecolor($target_width, $target_height);
$cropped_image = imagecreatetruecolor($cropped_width, $cropped_height);// 裁剪
imagecopy($cropped_image, $source_image, 0, 0, $source_x, $source_y, $cropped_width, $cropped_height);
// 缩放
imagecopyresampled($target_image, $cropped_image, 0, 0, 0, 0, $target_width, $target_height, $cropped_width, $cropped_height);//保存图片到本地(两者选一)
$randNumber = mt_rand(00000, 99999). mt_rand(000, 999);
$fileName = substr(md5($randNumber), 8, 16) .".png";
$new=imagepng($target_image,'../'.$fileName);
imagedestroy($target_image);
echo $fileName;//直接在浏览器输出图片(两者选一)
// header('Content-Type: image/jpeg');
// imagepng($target_image);
// imagedestroy($target_image);
// imagejpeg($target_image);
// imagedestroy($source_image);
// imagedestroy($target_image);
// imagedestroy($cropped_image);
}//调用
//imagecropper('./img033.jpg',300,300);
imagecropper('https://profile.csdnimg.cn/9/B/A/0_qq_35230125',140,140);
//imagecropper('./img033.jpg',55,55);

php 图像裁剪(自定义裁剪图片大小)相关推荐

  1. 如何将图片调整为固定大小?怎么自定义压缩图片大小?

    很多平台对用户发布的图片大小是有规定的.如果我们发布的图片太大的话,就需要对图片进行压缩处理了.想要缩小图片kb可以使用压缩图的图片压缩指定大小(图片压缩到指定大小 图片压缩大小至指定kb以下-压缩图 ...

  2. 图片不大于100kb怎么调?怎么自定义压缩图片大小?

    在报名职称考试上传照片时通常会有100kb的大小限制,超过了就会导致图片无法上传,出现这种情况我们就需要把图片压缩到100kb以下,那么怎么去自定义压缩图片大小呢?想要把图片缩小到固定尺寸可以用图片压 ...

  3. 怎样更改图片尺寸?如何自定义修改图片大小?

    平时我们经常需要修改图片尺寸,怎样快速给图片改大小呢?今天分享一款使用的图片尺寸修改器,可以根据自己的需求自定义更改图片尺寸大小,具体操作如下. 1.上传图片. 2.选择尺寸或自定义宽高,压缩等级输入 ...

  4. php自动裁剪图片,php 图像裁剪(自定义裁剪图片大小)

    用法: imagecropper("图片地址", "216", "60"); 会替换原图,不想替换原图自己加个参数,传入保存文件名 /** ...

  5. 如何在电脑上图片裁剪?裁剪图片大小的方法介绍

    图片裁剪大小的优点 在数字化时代,图片已成为人们日常生活中使用最频繁的媒介之一.然而,由于不同尺寸和比例的图片在不同的平台上展示效果有所不同,因此需要对其进行裁剪. 图片裁剪大小的主要优点包括: 1. ...

  6. 怎么压缩图片大小到指定kb?如何自定义图片压缩大小?

    大多网络平台对用户发布的图片大小是有规定的,如果想要发布高清大图的话,需要把图片缩小kb到平台规定大小.那么有没有自定义压缩图片大小的方法呢?下面分享一款图片压缩指定大小(图片压缩到指定大小 图片压缩 ...

  7. Python调整图片大小并保存调整后的图像

    Python调整图片大小并保存调整后的图像 目录 Python调整图片大小并保存调整后的图像 #原始图像

  8. 如何压缩图片大小到200k以下?照片太大怎么压缩到200k?

    许多考试平台在上传照片的时候都有具体的大小规定,比如图片大小不能超过200KB,为了可以顺利上传,我们需要先将图片压缩到200k以内.但是很多小伙伴不知道怎么将图片压缩到固定大小,小编今天就教大家一个 ...

  9. 怎么压缩图片大小到50kb以下?照片怎么压缩到50kb?

    随着现在摄影设备的升级,我们拍摄的许多照片都比较大,有时候在上传使用的时候,都会因为被限制大小无法上传,这时候就需要用到图片压缩指定大小(https://www.yasuotu.com/imagesi ...

最新文章

  1. .dat文件写入byte类型数组_文件字节流、文件字符流、缓冲字节流、缓冲字符流字节数组流、数据流、转换流、对象流...
  2. webstorm设置文件类型
  3. 有奶瓶的linux系统,用U盘启动BEINI(奶瓶)系统
  4. php网站导航-国际网址导航系统 v5.0源码
  5. 气动调节阀基本结构图
  6. 基于Spring Security的认证方式_编程UserDetailService_Spring Security OAuth2.0认证授权---springcloud工作笔记124
  7. 目前 NORTON SEP 及各类产品 离线升级包下载及升级方法
  8. HTML页面显示透视效果,《前端每日实战》第176号作品:用透视图表现 HTML、CSS 和 JS 的关系...
  9. VC调用Lingo并转化成 QT 工程编写一个特定的解决线性问题的软件
  10. 星期、月份英文缩写对照表
  11. MT【217】韦达定理应用
  12. 【献计一刻】软件开发小工的学习和工作清单
  13. Android短信验证(手机号注册,绑定手机号获取验证码)实例
  14. 3084. 超级变变变
  15. Linux添加Additional Perl modules
  16. Java项目:ERP管理系统(java+SpringBoot+EasyUI+maven+mysql)
  17. C++/Qt音视频通话开发MetaRTC源码解读,dtls交互流程,dtls抓包分析
  18. smartdraw2012破解教程
  19. SpringBoot开发微信公众号(三)
  20. 完美刷机显示云服务器,完美刷机正在云服务器

热门文章

  1. i3处理器_酷睿i3-9350K竟然是隐藏的绝世高手 Intel偷偷加了buff
  2. 中考计算机考试辽宁,重磅!辽宁中考重大改革!
  3. 支付宝支付为什么出现填写卡号
  4. (NLP) 淘宝评论处理(1)--工具库介绍
  5. 【Chrome插件开发作品】用户信息及验证码自动填充插件
  6. java getresources方法_Java ClassLoader getResources()方法与示例
  7. Java判断回文字符串的几种方法
  8. MySQL基础语法之三:join语法
  9. CentOS7安装MySQL数据库、设置防火墙
  10. 探讨12306两地三中心混合云架构