微信的头像现在要加水印到一张图片上 弄成 圆形的 怎么裁剪呢

Imagick提供的有 gd库 怎么做呢

因为要在微信中生成这个图片发送给用户 所以必须是生成这样的图片的 css的border-radius是只能显示网页中 怎么生成一个图片呢

已找到方法

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;

}

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

for($y=0;$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;

}

回答

为啥非要php处理呢,border-radius不可以解决需求吗?

谢邀。

没有测试微信头像,直接获取的本地的一张头像,然后裁剪圆形头像。

$avatar = __DIR__ . DIRECTORY_SEPARATOR . 'avatar.jpg';

$circleAvatar = __DIR__ . DIRECTORY_SEPARATOR . 'avatar.png';

$r = 50;

function getCircleAvatar($avatar, $circleAvatar, $r) {

/**

* @des 画一个正方形

* @size 两个半径

*/

$size = 2 * $r;

$circle = new Imagick();

$circle->newImage($size, $size, 'none');

$circle->setimageformat('png');

$circle->setimagematte(true);

/**

* @des 在矩形上画一个白色圆

*/

$draw = new ImagickDraw();

$draw->setfillcolor('#fff');

$draw->circle($r, $r, $r, $size);

$circle->drawimage($draw);

/**

* @des 裁剪头像成圆形

*/

$imagick = new Imagick();

$imagick->readImage($avatar);

$imagick->setImageFormat('png');

$imagick->setimagematte(true);

$imagick->cropimage($size, $size, 30, 0); // 修改裁剪属性

$imagick->compositeimage($circle, Imagick::COMPOSITE_COPYOPACITY , 0, 0);

$imagick->writeImage($circleAvatar);

$imagick->destroy();

}

getCircleAvatar($avatar, $circleAvatar, $r);

参照自己实际的情况修改一下。

确定要这么做么?

图片不可能是圆形,只能做成中间看到的部分是圆的,其他部分是png透明的.

或者把你的需求再说详细点,一般,在后端加水印,前端用css 处理显示圆形图片不可以么?

谢邀

http://blog.csdn.net/sugang_ximi/article/details/30762421

看是否有帮助

这个不应该是后端处理的范围,让前端去显示吧。

`

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

for($y=0;$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;

}

`

用你的代码生成速度好慢 怎么回事?

php 将图片截取成3张,【php】php gd库怎么把一个图片裁剪成圆形的相关推荐

  1. gd剪裁圆形图片 php_php gd库怎么把一个图片裁剪成圆形的

    微信的头像现在要加水印到一张图片上 弄成 圆形的 怎么裁剪呢 Imagick提供的有 gd库 怎么做呢 因为要在微信中生成这个图片发送给用户 所以必须是生成这样的图片的 css的border-radi ...

  2. php的gd库处理大的图片,PHP的gd库处理图片

    gd库为图片加文字水印和图片输出 $number = $result['certno'];//设置水印内容 $file = './Uploads/certs/' . $number . '.jpg'; ...

  3. php gd图片写入文字,PHP调用GD库将文字转为图片大标题分析

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 问题出现: 单位正在组织人员用phpcms2008进行二次开发,建立门户网站.为了方便编辑人员制做头条新闻的大标题,做了一个文字转图片的功能,实现编辑人员 ...

  4. php获取微信素材图片乱码,如何解决在php用gd库输出图片到微信浏览器出现乱码...

    如何解决在php用gd输出图片到微信浏览器出现乱码? 程序如下:<?php $im = imagecreate(200, 300); $white = imagecolorallocate($i ...

  5. 公众号点击图片变成另一张_微信公众号点击出现图片是怎么实现的?

    不知道小伙伴们有没有见过这样的微信公众号文章,就是会提示你点击某一个空白区域,点击后就会出现内容或者图片,这种点击出现图片的效果是怎么实现的呢? 其实,365微信编辑器里面有很多类似的素材样式,当你点 ...

  6. 使用Lua GD库动态生成验证码图片(2)

    在前一篇文章中初步的实现了验证码的随机生成,觉得很容易被破解,因此加了一些干扰: 鹤冲天建议使用表达式作为验证码,即使破解程序识别了验证码,也要计算结果才能通过验证,在一定程度上增加了破解难度. 因此 ...

  7. php基础-GD库-批量制作水印图片

    <?php function wtxt($path){               //定义一个函数wtxt   一个变量     $dir = scandir($path);         ...

  8. LATEX——两张图并列排列/双栏模板中图片通栏并列布局

    LATEX--两张图并列排列/双栏模板中图片通栏并列布局 正常插入图片 并列插入两张图片 双栏模板中图片通栏并列布局1(不同图片使用不同标题,不同编号) 双栏模板中图片通栏并列布局2(不同图片使有不同 ...

  9. PHP用gd库给图片添加水印,php用GD库给图片添加水印

    php用GD库给图片添加文字水印,整个代码比较简单,DEMO如下: /*打开图片*/ //1.配置图片路径 $src = "aeroplane.jpg"; //2.获取图片信息 $ ...

最新文章

  1. apply()智用:需要几个参数但只有一个参数数组
  2. mount /mnt/cdrom 提示错误信息“mount: can't find /mnt/cdrom in /etc/fstab or /etc/mtab”
  3. AWS — AWS Wavelength
  4. 利用xlwt写excel并进行单元格的合并
  5. RedHat gcc编译器版本升级到4.8.2支持C++11标准
  6. 原因好消息: 自己主动算法设计推箱子游戏(三)
  7. r语言 求几个数的最小公倍数_【微课】北师大版五年级数学上册第五单元8找最小公倍数...
  8. Mysql常见的引擎
  9. 百度云盘群组中资源文件实时同步更新保存到自己群组的方法
  10. 非计算机专业考研软件工程,#考研报名#计算机类、软件工程类考生报名前必看...
  11. python能不能开发app_Python可以开发APP吗?老男孩Python教育
  12. 服务器装xp系统蓝屏怎么办,安装XP系统出现蓝屏的解决办法
  13. java list map 去重复_Java中List集合去除重复数据的六种方法
  14. 4.13 使用扇贝工具制作猥琐的老鼠 [Illustrator CC教程]
  15. python的var是什么意思_python3函数里var是什么意思?
  16. AtCoder Beginner Contest 203(Sponsored by Panasonic) D.Pond(二分+二维前缀和)
  17. python中函数与函数之间的调用,总是晕菜,整理如下,有不对或者补充的请提出来~...
  18. 配置并启动MSDTC
  19. 论文查重系统需要注意哪些细节问题?
  20. mybatis的常用标签用法总结

热门文章

  1. 【CF应用开发大赛】制造过程能力Cpk计算器
  2. windows 下架设svn服务器(转载)
  3. 网络营销再掀波澜,微博独领风骚
  4. jQuery简单实现遍历的方法
  5. 路由器与计算机IP配置,路由器设置之前 如何给电脑设置IP地址
  6. java 基本变量类型_Java自学-基本变量类型
  7. linux驱动设备树
  8. 测试半桥电路 TPS28225,NCP3420驱动MOS半桥
  9. 画蛇添足:四条管脚的电位器
  10. 老师与学生打赌,谁会赢?