php实现背景图上添加圆形logo图标的方法
网络编程 2021-07-05 08:23www.168986.cn编程入门
这篇文章主要介绍了php实现背景图上添加圆形logo图标的方法,结合实例形式较为详细的分析了php背景图添加logo图标的操作步骤与具体实现技巧,需要的朋友可以参考下
本文实例讲述了php实现背景图上添加圆形logo图标的方法。分享给大家供大家参考,具体如下
说一下步骤
总共分 3 步
1. 压缩logo 成固定大小的方形图片
2. 将logo 转成圆形logo
3. 将logo与背景图合并
废话不多说,直接上代码
<?php / 作者friker 开发时间20160516 功能图片处理 / class ImageController extends CI_Controller{ public function __construct() { parent::__construct(); date_default_timezone_set('Asia/Shanghai'); error_reporting( E_ALL&~E_NOTICE&~E_WARNING); $this->load->library('curl'); } / @todo : 本函数用于 将方形的图片压缩后 再裁减成圆形 做成logo 与背景图合并 @return 返回url / public function index(){ //头像 $headimgurl = 'a.jpg'; //背景图 $bgurl = './aa.png'; $imgs['dst'] = $bgurl; //第一步 压缩图片 $imggzip = $this->resize_img($headimgurl); //第二步 裁减成圆角图片 $imgs['src'] = $this->test($imggzip); //第三步 合并图片 $dest = $this->mergerImg($imgs); } public function resize_img($url,$path='./'){ $imgname = $path.uniqid().'.jpg'; $file = $url; list($width, $height) = getimagesize($file); //获取原图尺寸 $percent = (110/$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); // header('Content-Type: image/png'); imagepng($newpic, $dest_path); imagedestroy($newpic); imagedestroy($src); unlink($url); return $dest_path; } //php 合并图片 public function mergerImg($imgs,$path='./') { $imgname = $path.rand(1000,9999).uniqid().'.jpg'; list($max_width, $max_height) = getimagesize($imgs['dst']); $dests = imagecreatetruecolor($max_width, $max_height); $dst_im = imagecreatefrompng($imgs['dst']); imagecopy($dests,$dst_im,0,0,0,0,$max_width,$max_height); imagedestroy($dst_im); $src_im = imagecreatefrompng($imgs['src']); $src_info = getimagesize($imgs['src']); imagecopy($dests,$src_im,270,202,0,0,$src_info[0],$src_info[1]); imagedestroy($src_im); // var_dump($imgs);exit; // header("Content-type: image/jpeg"); imagejpeg($dests,$imgname); // unlink($imgs['dst']); unlink($imgs['src']); return $imgname; } }
结果展示
更多关于PHP相关内容感兴趣的读者可查看本站专题《》、《》、《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家PHP程序设计有所帮助。
上一篇:PHP屏蔽关键字实现方法
下一篇:PHP解压ZIP文件到指定文件夹的方法
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程