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查询搜索引擎排名位置的代码
Jan 05 PHP
PHP数据过滤的方法
Oct 30 PHP
php用正则表达式匹配URL的简单方法
Nov 12 PHP
php开启openssl的方法
May 15 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
Jun 26 PHP
php实现求相对时间函数
Jun 15 PHP
学习php设计模式 php实现备忘录模式(Memento)
Dec 09 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
Jan 08 PHP
WordPress中重置文章循环的rewind_posts()函数讲解
Jan 11 PHP
微信公众号OAuth2.0网页授权问题浅析
Jan 21 PHP
PHP实现数组的笛卡尔积运算示例
Dec 15 PHP
thinkphp5框架扩展redis类方法示例
May 06 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
新52大事件
2020/03/03 欧美动漫
smarty基础之拼接字符串的详解
2013/06/18 PHP
javascript下有关dom以及xml节点访问兼容问题
2007/11/26 Javascript
jquery 页面全选框实践代码
2010/04/02 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
jquery遍历checkbox的注意事项说明
2014/02/21 Javascript
js判断为空Null与字符串为空简写方法
2014/02/24 Javascript
用jquery写的菜单从左往右滑动出现
2014/04/11 Javascript
javascript 判断整数方法分享
2014/12/16 Javascript
js实现两点之间画线的方法
2015/05/12 Javascript
基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
2016/05/12 Javascript
Node.js下自定义错误类型详解
2016/10/17 Javascript
详解Vue监听数据变化原理
2017/03/08 Javascript
es6学习笔记之Async函数基本教程
2017/05/11 Javascript
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
自定义Vue中的v-module双向绑定的实现
2019/04/17 Javascript
async/await让异步操作同步执行的方法详解
2019/11/01 Javascript
js实现倒计时秒杀效果
2020/03/25 Javascript
VUE使用axios调用后台API接口的方法
2020/08/03 Javascript
Python中unittest模块做UT(单元测试)使用实例
2015/06/12 Python
python监控文件或目录变化
2016/06/07 Python
网易有道2017内推编程题 洗牌(python)
2019/06/19 Python
Python使用python-docx读写word文档
2019/08/26 Python
django 解决自定义序列化返回处理数据为null的问题
2020/05/20 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
CSS3新增布局之: flex详解
2020/06/18 HTML / CSS
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
颇特女士香港官网:NET-A-PORTER香港
2021/03/08 全球购物
预备党员转正思想汇报
2014/01/12 职场文书
运动会入场式解说词
2014/02/18 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
离婚协议书样本
2015/01/26 职场文书
长城导游词
2015/01/30 职场文书
幼儿园六一主持词
2015/06/30 职场文书
Python万能模板案例之matplotlib绘制直方图的基本配置
2022/04/13 Python