首先来看一下PHP怎样生成一个圆形透明的图片

 1     function circle($url){
 2
 3         $w = 430;  $h=430; // original size
 4
 5         $path = dirname(__FILE__).'/';
 6
 7         $dest_path=$path.time().'.jpg';
 8
 9         $src = imagecreatefromstring(file_get_contents($url)); //获取资源文件
10
11         $newpic = imagecreatetruecolor($w,$h);
12         //建立的是一幅大小为 x和 y的黑色图像(默认为黑色),如想改变背景颜色则需要用填充颜色函数imagefill($img,0,0,$color);
13         // $img = imagecreatetruecolor(100,100);    //创建真彩图像资源
14         // $color = imagecolorAllocate($img,200,200,200);   //分配一个灰色
15         // imagefill($img,0,0,$color);
16
17
18         // 启用混色模式
19         imagealphablending($newpic,false); //设定图像的混色模式
20
21         //imagealphablending() 允许在真彩色图像上使用两种不同的绘画模式。
22         // 在混色(blending)模式下,alpha 通道色彩成分提供给所有的绘画函数,例如 imagesetpixel() 决定底层的颜色应在何种程度上被允许照射透过。作为结果,GD 自动将该点现有的颜色和画笔颜色混合,并将结果储存在图像中。结果的像素是不透明的。
23         // 在非混色模式下,画笔颜色连同其 alpha 通道信息一起被拷贝,替换掉目标像素。混色模式在画调色板图像时不可用。
24         // 如果 blendmode 为 TRUE,则启用混色模式,否则关闭。成功时返回 TRUE, 或者在失败时返回 FALSE。
25
26
27         $transparent = imagecolorallocatealpha($newpic, 233, 40, 59, 0);
28
29         //imagecolorallocatealpha(resource $image , int $red , int $green , int $blue, int $alpha )
30         // $image 图像资源,通过创造的图像功能,如,一返回imagecreatetruecolor()。
31         // $red 红色分量的价值。
32         // $green 价值的绿色成分。
33         // $blue 蓝色成分的价值。
34         // $alpha 一个介于0和127的价值。 0表示完全不透明,而127表示完全透明。
35
36
37         $r=$w/2;
38         for($x=0;$x<$w;$x++)
39             for($y=0;$y<$h;$y++){
40                 $c = imagecolorat($src,$x,$y);
41                 $_x = $x - $w/2;
42                 $_y = $y - $h/2;
43                 if((($_x*$_x) + ($_y*$_y)) < ($r*$r)){
44                     imagesetpixel($newpic,$x,$y,$c);
45                 }else{
46                     imagesetpixel($newpic,$x,$y,$transparent);
47                     //imagesetpixel() 在 image 图像中用 color 颜色在 x,y 坐标(图像左上角为 0,0)上画一个点。
48                 }
49             }
50
51         //imagesavealpha() 设置标记以在保存 PNG 图像时保存完整的 alpha 通道信息(与单一透明色相反)
52         imagesavealpha($newpic, true);
53         // header('Content-Type: image/png');
54         imagepng($newpic, $dest_path);
55         imagedestroy($newpic);
56         imagedestroy($src);
57
58         // unlink() 函数删除文件。
59         // 若成功,则返回 true,失败则返回 false。
60         // unlink($url);
61
62         return $dest_path;
63
64     }

转载于:https://www.cnblogs.com/zsdblog/p/9454711.html

使用PHP添加圆形头像相关推荐

  1. WordPress制作圆形头像友情链接页面的方法

    网上看见过很多种友情链接页面,我比较喜欢的是圆形头像的这种,先看看效果吧:传送门 就是这种上面是圆形的友链用户头像,下面是友链用户网站名,然后鼠标移上去头像会旋转,怎么实现这种效果呢?我在网上找了很多 ...

  2. android 清空canvas部分内容_Android自定义View实现圆形头像效果

    在我们的APP中通常会遇到,展示圆形头像的需求,一般通过Glide就能实现,但是让我们做一个圆形头像,如果让我们自定义实现这种效果,该怎样做呢? 好,接下来本文通过三种方式来实现这种效果! 注意:这是 ...

  3. android 头像球_Android一行代码实现圆形头像

    效果图 在开发APP中,经常要实现圆形头像,那么该如何实现呢? 要裁剪吗,要重写draw函数吗?不用,只用一行代码就可以实现 Glide实现圆形图像 Glide.with(mContext) .loa ...

  4. android 圆形头像,自定义圆形ImageView

    <!--头像--><RelativeLayoutandroid:id="@+id/ll_petInfo"android:layout_width="50 ...

  5. Android实现用户圆形头像+背景模糊

    效果呈现: 添加依赖: //图片加载框架implementation 'com.github.bumptech.glide:glide:3.7.0'implementation 'jp.wasabee ...

  6. Bootstrap—实现圆角、圆形头像和响应式图片

    Bootstrap提供了四种用于<img>类的样式,分别是: .img-rounded:圆角 (IE8 不支持),添加 border-radius:6px 来获得图片圆角: .img-ci ...

  7. Flutter的圆形头像四种简单用法

    文章目录 一.ClipOval 二.CircleAvatar 三.ClipRRect 四.Container+BoxDecoration 一.ClipOval 该方式属于绘图功能,只能简单的显示圆形头 ...

  8. 圆形头像的7种显示方法

    牙叔教程 简单易懂 效果展示 环境 手机: Mi 11 Pro Android版本: 11 Autojs版本: 9.0.11 图片形状: 正方形 圆形头像的7种显示方法 第1种: 使用Shapeabl ...

  9. ios 裁剪圆形头像_iOS 裁剪圆形图像并显示(类似于微信头像)

    本文主要讲解如何从照片库选择一张照片后将其裁剪成圆形头像并显示,类似于微信头像那种模式. 本文的方法也适用于当时拍照获取的图像,方法类似,所以不再赘述. 本文主要是在iOS 10环境下使用,此时如果要 ...

最新文章

  1. DFS:深入优先搜索 POJ-2386 Lake Counting
  2. RBL, UBL, Uboot的关系
  3. 将对象序列化与反序列实例
  4. 主键、唯一键与唯一索引的区别
  5. Python函数式编程指南
  6. 使用函数_使用TEXT函数生成中文大写金额
  7. 朋友圈9宫格留白_九宫格招聘拼图图片
  8. 行列式算法c语言,新手作品:行列式计算C语言版
  9. 【转】php json_encode中文为空的解决办法
  10. 从零开始的linux 第十九章(mv命令详解)
  11. python w3cschool_python|w3cschool菜鸟教程
  12. Matlab中erf函数的用法
  13. 最大公约数是啥意思_什么是最大公约数
  14. windows的cmd命令检测ip或者端口是否连通
  15. pytorch迁移学习载入部分权重
  16. nginx多域名重定向到不同的二级域名
  17. 计算年龄的sql语句
  18. 《深度学习》(美)Ian Goodfellow 花书简要笔记(第二部分:深度网络)
  19. DNS协议分析(域名解析)
  20. 自然语言处理的通俗百科

热门文章

  1. Dreamweaver8的安装
  2. 【历史上的今天】4 月 16 日:FTP 发布;Lisp 语言公开亮相;Spybot 蠕虫问世
  3. 小程序文档整理之 -- 场景值
  4. 如何从硬盘来下载有声读物到您的iPod
  5. R329-canny边缘检测
  6. 舆情监控工具app推荐,舆情监控工具包括哪些?
  7. 互联网手机的围城:小米风光被指顶多再撑一年
  8. 奇葩算法系列——量子猴子排序
  9. 内功修炼-深入了解函数栈帧
  10. 知云文献翻译打不开_软件推荐 | 知云文献翻译