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+MySQL的聊天室设计
Oct 09 PHP
PHP 防恶意刷新实现代码
May 16 PHP
PHP关联链接常用代码
Nov 05 PHP
php自定义apk安装包实例
Oct 20 PHP
PHP获取数组最后一个值的2种方法
Jan 21 PHP
php防止sql注入简单分析
Mar 18 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
Mar 05 PHP
PHP中的浅复制与深复制的实例详解
Oct 26 PHP
PHP预定义超全局数组变量小结
Aug 20 PHP
php连接mysql数据库最简单的实现方法
Sep 24 PHP
Yii框架 session 数据库存储操作方法示例
Nov 18 PHP
PHP使用Http Post请求发送Json对象数据代码解析
Jul 16 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
我的论坛源代码(九)
2006/10/09 PHP
sqlyog 中文乱码问题的设置方法
2008/10/19 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
php上传大文件设置方法
2016/04/14 PHP
完美解决在ThinkPHP控制器中命名空间的问题
2017/05/05 PHP
laravel通过a标签从视图向控制器实现传值
2019/10/15 PHP
JQUERY 浏览器判断实现函数
2009/08/20 Javascript
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
防止页面被iframe(兼容IE,Firefox火狐)
2010/07/04 Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
2010/10/26 Javascript
复选框全选与全不选操作实现思路
2013/08/18 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
2013/12/22 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
swtich/if...else的替代语句
2015/08/16 Javascript
JavaScript中的this机制
2016/01/30 Javascript
JavaScript浏览器对象之一Window对象详解
2016/06/03 Javascript
JavaScript实现随机数生成器(去重)
2017/10/13 Javascript
JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法
2018/06/07 Javascript
Vue-cli3多页面配置详解
2020/03/22 Javascript
[12:51]71泪洒现场!是DOTA2让经典重现
2014/03/24 DOTA
python中如何使用朴素贝叶斯算法
2017/04/06 Python
Python 查看文件的编码格式方法
2017/12/21 Python
python模块导入的细节详解
2018/12/10 Python
vscode 配置 python3开发环境的方法
2019/09/19 Python
简单了解python列表和元组的区别
2020/05/14 Python
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
主要的Ajax框架都有什么
2013/11/14 面试题
党校培训思想汇报
2013/12/30 职场文书
大班开学家长寄语
2014/04/04 职场文书
体育口号大全
2014/06/18 职场文书
党性分析自查总结
2014/10/14 职场文书
应届毕业生求职简历自我评价
2015/03/02 职场文书
创业计划书之农家乐
2019/10/09 职场文书
《正面管教》读后有感:和善而坚定的旅程
2019/12/19 职场文书
浅谈vue2的$refs在vue3组合式API中的替代方法
2021/04/18 Vue.js