php生成圆角图片的方法


Posted in PHP onApril 07, 2015

本文实例讲述了php生成圆角图片的方法。分享给大家供大家参考。具体如下:

<?php

$image_file = $_GET['src'];

$corner_radius = isset($_GET['radius']) ? $_GET['radius'] : 20; // The default corner radius is set to 20px

$topleft = (isset($_GET['topleft']) and $_GET['topleft'] == "no") ? false : true; // Top-left rounded corner is shown by default

$bottomleft = (isset($_GET['bottomleft']) and $_GET['bottomleft'] == "no") ? false : true; // Bottom-left rounded corner is shown by default

$bottomright = (isset($_GET['bottomright']) and $_GET['bottomright'] == "no") ? false : true; // Bottom-right rounded corner is shown by default

$topright = (isset($_GET['topright']) and $_GET['topright'] == "no") ? false : true; // Top-right rounded corner is shown by default

$imagetype=strtolower($_GET['imagetype']);

$backcolor=$_GET['backcolor'];

$endsize=$corner_radius;

$startsize=$endsize*3-1;

$arcsize=$startsize*2+1;

if (($imagetype=='jpeg') or ($imagetype=='jpg')) {

$image = imagecreatefromjpeg($image_file);

} else {

if (($imagetype=='GIF') or ($imagetype=='gif')) {

$image = imagecreatefromgif($image_file);

} else {

$image = imagecreatefrompng($image_file);

}

}

$size = getimagesize($image_file);

// Top-left corner

$background = imagecreatetruecolor($size[0],$size[1]);

imagecopymerge($background,$image,0,0,0,0,$size[0],$size[1],100);

$startx=$size[0]*2-1;

$starty=$size[1]*2-1;

$im_temp = imagecreatetruecolor($startx,$starty);

imagecopyresampled($im_temp, $background, 0, 0, 0, 0, $startx, $starty, $size[0], $size[1]);

$bg = imagecolorallocate($im_temp, hexdec(substr($backcolor,0,2)),hexdec(substr($backcolor,2,2)),hexdec(substr($backcolor,4,2)));

$fg = imagecolorallocate($im_temp, hexdec(substr($forecolor,0,2)),hexdec(substr($forecolor,2,2)),hexdec(substr($forecolor,4,2)));

if ($topleft == true) {

imagearc($im_temp, $startsize, $startsize, $arcsize, $arcsize, 180,270,$bg);

imagefilltoborder($im_temp,0,0,$bg,$bg);

}

// Bottom-left corner

if ($bottomleft == true) {

imagearc($im_temp,$startsize,$starty-$startsize,$arcsize,$arcsize,90,180,$bg);

imagefilltoborder($im_temp,0,$starty,$bg,$bg);

}

// Bottom-right corner

if ($bottomright == true) {

imagearc($im_temp, $startx-$startsize, $starty-$startsize,$arcsize, $arcsize, 0,90,$bg);

imagefilltoborder($im_temp,$startx,$starty,$bg,$bg);

}

// Top-right corner

if ($topright == true) {

imagearc($im_temp, $startx-$startsize, $startsize,$arcsize, $arcsize, 270,360,$bg);

imagefilltoborder($im_temp,$startx,0,$bg,$bg);

}

$newimage = imagecreatetruecolor($size[0],$size[1]);

imagecopyresampled($image,$im_temp,0,0,0,0,$size[0],$size[1],$startx,$starty);

// Output final image

header("Content-type: image/png");

imagepng($image);

imagedestroy($image);

imagedestroy($background);

imagedestroy($im_temp);

?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
php jquery 多文件上传简单实例
Dec 23 PHP
PHPer 需要了解的 5 个 Composer 小技巧
Aug 18 PHP
PHP curl 抓取AJAX异步内容示例
Sep 09 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
Sep 27 PHP
php中base_convert()进制数字转换函数实例
Nov 20 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
Jan 07 PHP
php微信开发之自定义菜单实现
Nov 18 PHP
微信自定义分享php代码分析
Nov 24 PHP
PHP实现多级分类生成树的方法示例
Feb 07 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 PHP
PHP whois查询类定义与用法示例
Apr 03 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
Oct 20 PHP
php按单词截取字符串的方法
Apr 07 #PHP
php生成zip文件类实例
Apr 07 #PHP
php生成图片缩略图的方法
Apr 07 #PHP
Nginx下配置codeigniter框架方法
Apr 07 #PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
Apr 07 #PHP
php修改文件上传限制方法汇总
Apr 07 #PHP
windows下安装php的memcache模块的方法
Apr 07 #PHP
You might like
php定界符
2014/06/19 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
2014/08/20 PHP
php获取远程文件内容的函数
2015/11/02 PHP
详解PHP数据压缩、加解密(pack, unpack)
2016/12/17 PHP
基于php数组中的索引数组和关联数组详解
2018/03/12 PHP
PHP文件后缀不强制为.php方法
2019/03/31 PHP
Laravel配置全局公共函数的方法步骤
2019/05/09 PHP
js汉字转拼音实现代码
2013/02/06 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
JQuery实现表格动态增加行并对新行添加事件
2014/07/30 Javascript
Javascript获取当前日期的农历日期代码
2014/10/08 Javascript
node.js中的fs.writeSync方法使用说明
2014/12/15 Javascript
对于jQuery性能的一些优化建议
2015/08/13 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
2015/12/25 Javascript
分析JS单线程异步io回调的特性
2017/12/01 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
微信小程序实现蒙版弹窗效果
2018/11/01 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
python利用正则表达式排除集合中字符的功能示例
2017/10/10 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
python数据结构学习之实现线性表的顺序
2018/09/28 Python
如何基于Python实现数字类型转换
2020/02/07 Python
Keras中 ImageDataGenerator函数的参数用法
2020/07/03 Python
Python爬虫入门教程01之爬取豆瓣Top电影
2021/01/24 Python
整理的15个非常有用的 HTML5 开发教程和速查手册
2011/10/18 HTML / CSS
切尔西足球俱乐部官方网上商店:Chelsea FC
2019/06/17 全球购物
Booking.com缤客中国:全球酒店在线预订网站
2020/05/03 全球购物
酷瑞网络科技面试题
2012/03/30 面试题
美发活动策划书
2014/01/14 职场文书
新教师2015年度工作总结
2015/07/22 职场文书
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python
python中的sys模块和os模块
2022/03/20 Python
redis protocol通信协议及使用详解
2022/07/15 Redis