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 更新数据库中断的解决方法
Jun 05 PHP
在字符串指定位置插入一段字符串的php代码
Feb 16 PHP
Drupal读取Excel并导入数据库实例
Mar 02 PHP
php中mysql连接和基本操作代码(快速测试使用,简单方便)
Apr 25 PHP
php+ajax导入大数据时产生的问题处理
Jun 11 PHP
thinkphp实现图片上传功能
Jan 13 PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
Mar 21 PHP
深入解析PHP的Laravel框架中的event事件操作
Mar 21 PHP
php基于jquery的ajax技术传递json数据简单实例
Apr 15 PHP
PHP数据的提交与过滤基本操作实例详解
Nov 11 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 PHP
php适配器模式简单应用示例
Oct 23 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和JavaScript判断请求是否来自微信内浏览器
2015/08/18 PHP
php构造方法中析构方法在继承中的表现
2016/04/12 PHP
php中通过eval实现字符串格式的计算公式
2017/03/18 PHP
php判断目录存在的简单方法
2019/09/26 PHP
动态创建的表格单元格中的事件实现代码
2008/12/30 Javascript
精通JavaScript 纠正 cleanWhitespace函数
2010/03/11 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
2013/05/21 Javascript
JS在IE下缺少标识符的错误
2014/07/23 Javascript
浅谈JavaScript中Date(日期对象),Math对象
2015/02/05 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
requirejs按需加载angularjs文件实例
2017/06/08 Javascript
vue+element-ui动态生成多级表头的方法
2018/08/28 Javascript
Vue中控制v-for循环次数的实现方法
2018/09/26 Javascript
如何使用less实现随机下雪动画详解
2019/01/02 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
2020/06/02 Javascript
vue使用video插件vue-video-player详解
2020/10/23 Javascript
ant design vue导航菜单与路由配置操作
2020/10/28 Javascript
Python使用QRCode模块生成二维码实例详解
2017/06/14 Python
Django中login_required装饰器的深入介绍
2017/11/24 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
HTML5 新事件 小结
2009/07/16 HTML / CSS
全球知名旅游社区法国站点:TripAdvisor法国
2016/08/03 全球购物
商务英语本科生的自我评价分享
2013/11/15 职场文书
自我鉴定怎么写
2013/12/05 职场文书
人力资源专员岗位职责
2014/01/30 职场文书
信息科学与技术专业求职信范文
2014/02/20 职场文书
什么是就业协议书
2014/04/17 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
2014年机关党委工作总结
2014/12/11 职场文书
工会文体活动总结
2015/05/07 职场文书
北京青年观后感
2015/06/15 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
青少年法制教育心得体会
2016/01/14 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
Python多个MP4合成视频的实现方法
2021/07/16 Python