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 和 HTML
Oct 09 PHP
在同一窗体中使用PHP来处理多个提交任务
May 08 PHP
php数组(array)输出的三种形式详解
Jun 05 PHP
php更新修改excel中的内容实例代码
Feb 26 PHP
PHP常用函数和常见疑难问题解答
Mar 05 PHP
PHP把小数转成整数3种方法
Jun 30 PHP
PHP获取QQ达人QQ信息的方法
Mar 05 PHP
Laravel 5框架学习之路由、控制器和视图简介
Apr 07 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
Dec 17 PHP
php框架CodeIgniter主从数据库配置方法分析
May 25 PHP
PHP的静态方法与普通方法用法实例分析
Sep 26 PHP
php array_map()函数实例用法
Mar 03 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下MAIL的另一解决方案
2006/10/09 PHP
解析posix与perl标准的正则表达式区别
2013/06/17 PHP
PHP simplexml_import_dom()函数讲解
2019/02/03 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
2019/10/25 PHP
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
2011/04/19 Javascript
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
用js判断输入是否为中文的函数
2014/03/10 Javascript
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
jQuery后代选择器用法实例
2014/12/23 Javascript
jquery实现点击变换导航样式的方法
2015/08/31 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
2016/05/21 Javascript
对javascript继承的理解
2016/10/11 Javascript
微信小程序开发探究
2016/12/27 Javascript
js中小数向上取整数,向下取整数,四舍五入取整数的实现(必看篇)
2017/02/13 Javascript
微信小程序商城项目之商品属性分类(4)
2017/04/17 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
2018/12/06 NodeJs
微信小程序仿今日头条导航栏滚动解析
2019/08/20 Javascript
vue双向绑定数据限制长度的方法
2019/11/04 Javascript
Python单链表的简单实现方法
2014/09/23 Python
Python去除字符串两端空格的方法
2015/05/21 Python
python 对dataframe下面的值进行大规模赋值方法
2018/06/09 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
2019/11/20 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
Python3与fastdfs分布式文件系统如何实现交互
2020/06/23 Python
百度JavaScript笔试题
2015/01/15 面试题
医学专业毕业生个人求职信
2013/12/25 职场文书
反邪教警示教育方案
2014/05/13 职场文书
党在我心中的演讲稿
2014/09/13 职场文书
执法作风整顿剖析材料
2014/10/11 职场文书
Python中Permission denied的解决方案
2021/04/02 Python
详解JS ES6编码规范
2021/05/07 Javascript
Python Pandas知识点之缺失值处理详解
2021/05/11 Python