文档章节

[PHP]把图片切成圆形

redraiment
 redraiment
发布于 2015/01/05 00:10
字数 313
阅读 519
收藏 0

今天在用世界上最好的编程语言开发时,遇到一个业务需求:将正方形图片切成圆形、长方形图片切成椭圆形,切去的部分设置成透明,然后保存成png。

例如OSC上我的头像是左边的正方形,要切成右边的圆形图片。

方形版本 圆形版本

PHP中图像处理库有GD、Imagick等,我个人喜欢GD的分隔,在PHP中使用对象有点脱裤子放屁——多此一举的感觉。不过网络上倒普遍推荐使用Imagick等其他库,认为GD库效率太低。

不过,针对本文的问题,GD库并没有提供现成Round Corners的方法,Stack Overflow上倒有人提供了自己的实现版本。不过,相比PHP的面向对象,我更厌恶大段的代码,既然Imagick中有现成的方法,那我就不客气地拿来主义了:

header('Content-Type: image/png');

$image = new Imagick('http://static.oschina.net/uploads/user/29/58387_100.jpg');
$image->setImageFormat('png');
$image->roundCorners($image->getImageWidth() / 2, $image->getImageHeight() / 2);
echo $image;
$image->destroy();

© 著作权归作者所有

redraiment

redraiment

粉丝 131
博文 23
码字总数 36572
作品 6
杭州
架构师
私信 提问
UIImage切圆角 - 优化

UIImage等比例缩放并切圆角 如题, 在网上找的代码也是可以用的, 但是问题是切成圆角时, 如果图片本身不是正方形就会导致图片变形,被压缩或者拉伸. 今上午阅读了那一段代码, 然后自己写出了任...

hell03W
2016/07/20
33
0
切图时图片格式选择(PNG8和PNG24)

浅谈下PNG8和PNG24的区别: 1.png8和png24的根本区别,不是颜色位的区别,而是存储方式不同。 2.png8有1位的布尔透明通道(要么完全透明,要么完全不透明),png24则有8位(256阶)的布尔透明...

Yue_h
2013/12/18
0
2
png-8与png-24的区别

进行psd切图时存储png时出现png8与png24的区别,经过网上搜索发现: 以下部分摘抄于http://blog.sina.com.cn/s/blog9050e71e0100yvtf.html 今天我做了一个图,因为需要透明,所以我存为了PNG...

豆豆4997
2014/06/26
0
0
[一句秒懂]ios圆形图片显示

简介: 1:一般情况下,在tableView上显示一张圆形图片(从网络下载好的图片),按照常规方法设置layer图层的话,用户会感觉有些卡顿现象,不推荐使用! 2:现在我推荐的是一个比较流畅的做法:...

XJDomain
2016/06/17
43
0
网页设计中 PS切图注意问题:

网页设计的切图,最好先用PS做出效果图,然后进行切图。 一、切图的原则: 1、图切的大小越小越好。 2、图切的数量越少越好。那对于一整张图来说,同时达到这两个原则是相互矛盾的,所以一个...

Yue_h
2013/11/25
0
1

没有更多内容

加载失败,请刷新页面

加载更多

Class 文件结构

https://www.cnblogs.com/honghuzidelaoren/p/3622021.html

Java搬砖工程师
19分钟前
3
0
未分类资料

$ Inside the Linux Kernel 与知乎出产 一张漫画看懂Linux系统结构

十万猛虎下画山
20分钟前
1
0
Android人脸识别Demo竖屏YUV方向调整和图片保存

本博客包含三个常用方法,用于盛开Android版人脸识别Demo中竖屏使用时送入yuv数据,但一直无法识别的情况。 1.首先可以尝试顺时针旋转90°或270°,然后送入识别SDK。 2.旋转方向后依然无法识...

是哇兴哥棒棒哒
23分钟前
1
0
选择阿里云数据库HBase版十大理由

根据Gartner的预计,全球非关系型数据库(NoSQL)在2020~2022预计保持在30%左右高速增长,远高于数据库整体市场。 阿里云数据库HBase版也是踏着技术发展的节奏,伴随着NoSQL和大数据技术的兴...

阿里云云栖社区
36分钟前
2
0
平滑与滤波

五种常见的平滑滤波器: (1)方框型滤波器: 顾名思义,方框型滤波器就是用一个方框型的kernel跟二维图像进行卷积,其核定义如下: kernel= 其中, a = 1 当该滤波器非归一化滤波器 (1) a=...

yepanl
42分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部