TP5 使用GD库将一个头像缩略并处理成圆形png
今天因为公司小程序要做一个用户海报,需要水印+二维码+头像。 (头像必须要圆的)
因为记得之前好像做过一次,但是实在想不起来,就在网上找了几个试了试, 最后选了一个,原文地址:
https://segmentfault.com/q/1010000007501202
先给大家说一下逻辑。 头像的话,需要先缩略一下。再进行png圆形处理。下面是两个方法的代码:
/**
* $url:是头像路径,$path:是保存路径(../是根目录)
**/
public function resize_img($url,$path='../'){ //先缩略
$imgname = $path.uniqid().'.jpg';
$file = $url;
list($width, $height) = getimagesize($file); //获取原图尺寸
$percent = (140/$width);
//缩放尺寸
$newwidth = $width * $percent;
$newheight = $height * $percent;
$src_im = imagecreatefromjpeg($file);
$dst_im = imagecreatetruecolor($newwidth, $newheight);
imagecopyresized($dst_im, $src_im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagejpeg($dst_im, $imgname); //输出压缩后的图片
imagedestroy($dst_im);
imagedestroy($src_im);
return $imgname;
}
public function test($url,$path='../'){ //处理圆形
$w = 110; $h=110; // original size
$original_path= $url;
$dest_path = $path.uniqid().'.png';
$src = imagecreatefromstring(file_get_contents($original_path));
$newpic = imagecreatetruecolor($w,$h);
imagealphablending($newpic,false);
$transparent = imagecolorallocatealpha($newpic, 0, 0, 0, 127);
$r=$w/2;
for($x=0;$x<$w;$x++)
for($y=0;$y<$h;$y++){
$c = imagecolorat($src,$x,$y);
$_x = $x - $w/2;
$_y = $y - $h/2;
if((($_x*$_x) + ($_y*$_y)) < ($r*$r)){
imagesetpixel($newpic,$x,$y,$c);
}else{
imagesetpixel($newpic,$x,$y,$transparent);
}
}
imagesavealpha($newpic, true);
imagepng($newpic, $dest_path);
imagedestroy($newpic);
imagedestroy($src);
// unlink($url);
return $dest_path;
}
是要分两个步骤的。
经过第二个方法返回的图片就是 下图的 圆形png头像。
TP5 使用GD库将一个头像缩略并处理成圆形png相关推荐
- 使用halcon将一个圆上的点拟合成圆形并且求出圆心
我们在自动化贴装机标定过程中,需要计算吸头的旋转中心位置.我们一般使用的方法是使用模板匹配,做一个模板,吸头旋转一个角度寻找模板一次,通过多次旋转求取吸头的旋转中心. 使用halcon实现 publi ...
- PHP用gd库给图片添加水印,php用GD库给图片添加水印
php用GD库给图片添加文字水印,整个代码比较简单,DEMO如下: /*打开图片*/ //1.配置图片路径 $src = "aeroplane.jpg"; //2.获取图片信息 $ ...
- php gd库 圆形头像,基于 GD 库生成圆形头像
基于 GD 库生成圆形头像 laravel 友好的图片处理库 Intervention Image 可以绘制圆形(circle()), 但是好像并不能将即存的图片裁剪成圆形, 这里提供一个基于 GD ...
- PHP 使用GD库合成带二维码和圆形头像的海报步骤以及源码实现
PHP 使用GD库合成带二维码和圆形头像的海报步骤以及源码实现 之前记录过一篇文章,不过那只是简单将二维码合成到海报中去,这次还要合成头像,而且是圆形.所需要素材就不一一列举,直接代码吧 1.先获取用 ...
- PHP面向对象——GD库实现图片水印和缩略图
今天的实现目标就是使用GD库完成对图片加水印和图 片缩略图两个功能 动身前逻辑准备 属性:路径功能:构造方法生成水印的方法获取图片信息获取位置信息(123 456 789)创建图片资源合并图片资源重新 ...
- IIS+PHP+MySQL+Zend Optimizer+GD库+phpMyAdmin安装配置[完整修正实用版]
IIS+PHP+MySQL+Zend Optimizer+GD库+phpMyAdmin安装配置[完整修正实用版] IIS+PHP+MySQL+Zend Optimizer+GD库+phpMyAdmin ...
- php 将图片截取成3张,【php】php gd库怎么把一个图片裁剪成圆形的
微信的头像现在要加水印到一张图片上 弄成 圆形的 怎么裁剪呢 Imagick提供的有 gd库 怎么做呢 因为要在微信中生成这个图片发送给用户 所以必须是生成这样的图片的 css的border-radi ...
- 商 务 英 语 常 用 缩 略 语 表
商 务 英 语 常 用 缩 略 语 表 缩 写 全 称 中 文 a accepted 承兑 A&C addenda and corrigenda 补遗和勘误 A.C.V actual cash ...
- xp php mysql_WindowsXP+IIS+PHP5+MySQL5+Zend+GD库+phpMyAdmin+PHPW
一.准备工作: 1.安装好WindowsXP及IIS,这是最基本的要求,就不多说了.可以在浏览器中打开:http://lzw.me/,如能看到以下画面,就说明IIS安装成功了.注意:此时的IIS还未经 ...
最新文章
- 算法--------字符串中的第一个唯一字符(Java 版本)
- static用法解析---java语言
- iftop是一个很好用的实时流量监测程序,跟使用iftop查看linux连接进程占用的实时流量...
- go 语言系列(二)基本数据类型和操作符
- c linux time微秒_qt linux系统获取当前时间(精确到毫秒、微秒)-Go语言中文社区...
- 这两种printf()函数重定向方法,太实用了
- java王大拿谢大脚_《乡村爱情1》:“王大拿”赵本山有3大亮点,追谢大脚根本不算啥...
- 基于Mind+的NB-IOT自动获取时间和位置
- 重庆三峡学院计算机英语期末考试,英语语言学试题B卷及答案(重庆三峡学院)
- Linux系统瓶颈排查
- 【专利】实用新型专利设计模板
- 自己组装电脑后怎么装Win10系统教学
- plotyy函数_matlab中plotyy函数加入双y轴说明的方法
- Ubuntu论坛遭到入侵 用户数据泄露
- 拖拉机服务器不稳定,手扶拖拉机机油指示不稳定现象分析
- AVR单片机与C语言的一些入门简要概述
- [转载]JS和AS交互 作者:ludanlove
- 【单片机】时钟及温度的显示
- “35岁危机”不再,算法岗应届生平均月薪超3.2万,人工智能行业掀抢人大战!...
- 怎么看vray渲染进度_【3dmax疑难问题】渲染有进度条但渲染窗口不见了
热门文章
- UEFI使用rEFInd引导Win10+Deepin双系统
- windows10下安装refind
- 如何访问NetApp E系列存储的CLI命令行
- vue2.0引入腾讯地图
- LeetCode T35_searchInsert
- android拦截js弹窗,C++ 拦截 CEF 的JS 弹窗(Alert, Confirm),改造为C++的对话框
- 2018年APP应用上架苹果商店的详细步骤整理:
- 高性能游戏蓝牙耳机有哪些?手游游戏蓝牙耳机推荐
- 挣脱电子锁链 互联网信息安全如何保障
- springboot创建父子工程