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 相关文章推荐
在PHP3中实现SESSION的功能(一)
Oct 09 PHP
PHP语法速查表
Dec 06 PHP
php简单提示框alert封装函数
Aug 08 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
Jun 30 PHP
PHP实现时间轴函数代码
Oct 08 PHP
PHP中实现生成静态文件的方法缓解服务器压力
Jan 07 PHP
19个超实用的PHP代码片段
Mar 14 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
Nov 18 PHP
ThinkPHP自动完成中使用函数与回调方法实例
Nov 29 PHP
php实现的统计字数函数定义与使用示例
Jul 26 PHP
PHP用PDO如何封装简单易用的DB类详解
Jul 30 PHP
YII框架模块化处理操作示例
Apr 26 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 fckeditor 调用的函数
2009/06/21 PHP
将文件夹压缩成zip文件的php代码
2009/12/14 PHP
PHP中的traits实现代码复用使用实例
2015/05/13 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
js获取div高度的代码
2008/08/09 Javascript
javascript的原生方法获取数组中的最大(最小)值
2012/12/19 Javascript
禁止选中文字兼容IE、Chrome、FF等
2013/09/04 Javascript
JavaScript获取图片真实大小代码实例
2014/09/24 Javascript
js获得当前系统日期时间的方法
2015/05/06 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
javascript中获取class的简单实现
2016/07/12 Javascript
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
2016/10/10 Javascript
详解Windows下安装Nodejs步骤
2017/05/18 NodeJs
深入浅出理解JavaScript高级定时器原理与用法
2018/08/02 Javascript
详解Vue Cli浏览器兼容性实践
2020/06/08 Javascript
python使用in操作符时元组和数组的区别分析
2015/05/19 Python
python中利用Future对象回调别的函数示例代码
2017/09/07 Python
python计算二维矩形IOU实例
2020/01/18 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
html5 canvas 画图教程案例分析
2012/11/23 HTML / CSS
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
挂职自我鉴定
2014/02/26 职场文书
学校对教师的评语
2014/04/28 职场文书
学校周年庆活动方案
2014/08/22 职场文书
收款委托书范本
2014/09/11 职场文书
小学生校园广播稿
2014/09/28 职场文书
2015年党员岗位承诺书
2015/04/27 职场文书
2015年推普周活动方案
2015/05/06 职场文书
运动会广播稿300字
2015/08/19 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript
MySQL完整性约束的定义与实例教程
2021/05/30 MySQL
JavaWeb实现显示mysql数据库数据
2022/03/19 Java/Android
MySQL慢查询中的commit慢和binlog中慢事务的区别
2022/06/16 MySQL