php 将图片截取成3张,【php】php gd库怎么把一个图片裁剪成圆形的
微信的头像现在要加水印到一张图片上 弄成 圆形的 怎么裁剪呢
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库怎么把一个图片裁剪成圆形的相关推荐
- gd剪裁圆形图片 php_php gd库怎么把一个图片裁剪成圆形的
微信的头像现在要加水印到一张图片上 弄成 圆形的 怎么裁剪呢 Imagick提供的有 gd库 怎么做呢 因为要在微信中生成这个图片发送给用户 所以必须是生成这样的图片的 css的border-radi ...
- php的gd库处理大的图片,PHP的gd库处理图片
gd库为图片加文字水印和图片输出 $number = $result['certno'];//设置水印内容 $file = './Uploads/certs/' . $number . '.jpg'; ...
- php gd图片写入文字,PHP调用GD库将文字转为图片大标题分析
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 问题出现: 单位正在组织人员用phpcms2008进行二次开发,建立门户网站.为了方便编辑人员制做头条新闻的大标题,做了一个文字转图片的功能,实现编辑人员 ...
- php获取微信素材图片乱码,如何解决在php用gd库输出图片到微信浏览器出现乱码...
如何解决在php用gd输出图片到微信浏览器出现乱码? 程序如下:<?php $im = imagecreate(200, 300); $white = imagecolorallocate($i ...
- 公众号点击图片变成另一张_微信公众号点击出现图片是怎么实现的?
不知道小伙伴们有没有见过这样的微信公众号文章,就是会提示你点击某一个空白区域,点击后就会出现内容或者图片,这种点击出现图片的效果是怎么实现的呢? 其实,365微信编辑器里面有很多类似的素材样式,当你点 ...
- 使用Lua GD库动态生成验证码图片(2)
在前一篇文章中初步的实现了验证码的随机生成,觉得很容易被破解,因此加了一些干扰: 鹤冲天建议使用表达式作为验证码,即使破解程序识别了验证码,也要计算结果才能通过验证,在一定程度上增加了破解难度. 因此 ...
- php基础-GD库-批量制作水印图片
<?php function wtxt($path){ //定义一个函数wtxt 一个变量 $dir = scandir($path); ...
- LATEX——两张图并列排列/双栏模板中图片通栏并列布局
LATEX--两张图并列排列/双栏模板中图片通栏并列布局 正常插入图片 并列插入两张图片 双栏模板中图片通栏并列布局1(不同图片使用不同标题,不同编号) 双栏模板中图片通栏并列布局2(不同图片使有不同 ...
- PHP用gd库给图片添加水印,php用GD库给图片添加水印
php用GD库给图片添加文字水印,整个代码比较简单,DEMO如下: /*打开图片*/ //1.配置图片路径 $src = "aeroplane.jpg"; //2.获取图片信息 $ ...
最新文章
- apply()智用:需要几个参数但只有一个参数数组
- mount /mnt/cdrom 提示错误信息“mount: can't find /mnt/cdrom in /etc/fstab or /etc/mtab”
- AWS — AWS Wavelength
- 利用xlwt写excel并进行单元格的合并
- RedHat gcc编译器版本升级到4.8.2支持C++11标准
- 原因好消息: 自己主动算法设计推箱子游戏(三)
- r语言 求几个数的最小公倍数_【微课】北师大版五年级数学上册第五单元8找最小公倍数...
- Mysql常见的引擎
- 百度云盘群组中资源文件实时同步更新保存到自己群组的方法
- 非计算机专业考研软件工程,#考研报名#计算机类、软件工程类考生报名前必看...
- python能不能开发app_Python可以开发APP吗?老男孩Python教育
- 服务器装xp系统蓝屏怎么办,安装XP系统出现蓝屏的解决办法
- java list map 去重复_Java中List集合去除重复数据的六种方法
- 4.13 使用扇贝工具制作猥琐的老鼠 [Illustrator CC教程]
- python的var是什么意思_python3函数里var是什么意思?
- AtCoder Beginner Contest 203(Sponsored by Panasonic) D.Pond(二分+二维前缀和)
- python中函数与函数之间的调用,总是晕菜,整理如下,有不对或者补充的请提出来~...
- 配置并启动MSDTC
- 论文查重系统需要注意哪些细节问题?
- mybatis的常用标签用法总结