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 相关文章推荐
ADODB的数据库封包程序库
Dec 31 PHP
discuz authcode 经典php加密解密函数解析
Jul 12 PHP
php file_exists 检查文件或目录是否存在的函数
May 10 PHP
PHP冒泡排序算法代码详细解读
Jul 17 PHP
PHP Directory 函数的详解
Mar 07 PHP
php中define用法实例
Jul 30 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
Aug 12 PHP
PHP创建单例后台进程的方法示例
May 23 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
Jun 17 PHP
浅谈PHP中new self()和new static()的区别
Aug 11 PHP
php实现每日签到功能
Nov 29 PHP
php中isset与empty函数的困惑与用法分析
Jul 05 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
PHPMyadmin 配置文件详解(配置)
2009/12/03 PHP
PHP 基本语法格式
2009/12/15 PHP
php 编写安全的代码时容易犯的错误小结
2010/05/20 PHP
php延迟静态绑定实例分析
2015/02/08 PHP
thinkphp实现图片上传功能
2016/01/13 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
2018/05/02 PHP
js中的window.open返回object的错误的解决方法
2009/08/15 Javascript
JQuery与Ajax常用代码实现对比
2009/10/03 Javascript
关于COOKIE个数与大小的问题
2011/01/17 Javascript
jQuery中replaceWith()方法用法实例
2014/12/25 Javascript
jQuery实现当前页面标签高亮显示的方法
2015/03/10 Javascript
基于jQuery实现以手风琴方式展开和折叠导航菜单
2016/01/28 Javascript
JS实现HTML表格排序功能
2016/08/05 Javascript
JS控制HTML元素的显示和隐藏的两种方法
2016/09/27 Javascript
jQ处理xml文件和xml字符串的方法(详解)
2016/11/22 Javascript
微信小程序 自动登陆PHP源码实例(源码下载)
2017/05/08 Javascript
Ext JS 实现建议词模糊动态搜索功能
2017/05/13 Javascript
Node.js上传文件功能之服务端如何获取文件上传进度
2018/02/05 Javascript
ES6知识点整理之模块化的应用详解
2019/04/15 Javascript
实现一个 Vue 吸顶锚点组件方法
2019/07/10 Javascript
详细分析vue响应式原理
2020/06/22 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
vue实现图片按比例缩放问题操作
2020/08/11 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
2020/09/02 Javascript
vue实现选中效果
2020/10/07 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
简介Python设计模式中的代理模式与模板方法模式编程
2016/02/02 Python
详解Python locals()的陷阱
2019/03/26 Python
django实现后台显示媒体文件
2020/04/07 Python
L’urv官网:精品女性运动服品牌
2019/07/07 全球购物
物业管理专业个人的自我评价
2013/11/19 职场文书
公司年终奖分配方案
2014/06/16 职场文书
小学庆六一主持词
2015/06/30 职场文书
吧主申请感言怎么写
2015/08/03 职场文书
分家协议书范本
2016/03/22 职场文书
2019学校请假条格式及范文
2019/06/25 职场文书