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 相关文章推荐
ThinkPHP3.1新特性之对页面压缩输出的支持
Jun 19 PHP
PHP实现PDO的mysql数据库操作类
Dec 12 PHP
php购物车实现方法
Jan 03 PHP
php 5.6版本中编写一个PHP扩展的简单示例
Jan 20 PHP
PHP多文件上传实例
Jul 09 PHP
是 WordPress 让 PHP 更流行了 而不是框架
Feb 03 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
Mar 09 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
Jun 06 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
Apr 09 PHP
Laravel5.5 动态切换多语言的操作方式
Oct 25 PHP
php实现对短信验证码发送次数的限制实例讲解
Mar 04 PHP
PHP解决高并发问题
Apr 01 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
Win9x/ME下Apache+PHP安装配置
2006/10/09 PHP
PHP注释实例技巧
2008/10/03 PHP
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
2011/08/11 PHP
PHP中CURL方法curl_setopt()函数的参数分享
2013/01/19 PHP
PHP实现随机生成水印图片功能
2017/03/22 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
js 浏览器事件介绍
2012/03/30 Javascript
jQuery.validate 常用方法及需要注意的问题
2013/03/20 Javascript
js实现点击注册按钮开始读秒倒计时的小例子
2013/05/11 Javascript
JS 获取select(多选下拉)中所选值的示例代码
2013/08/02 Javascript
js获取事件源及触发该事件的对象
2013/10/24 Javascript
关于js内存泄露的一个好例子
2013/12/09 Javascript
用jquery仿做发微博功能示例
2014/04/18 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
Vue实现数字输入框中分割手机号码的示例
2017/10/10 Javascript
如何让你的JS代码更好看易读
2017/12/01 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
2020/07/31 Javascript
python 测试实现方法
2008/12/24 Python
使用Python程序抓取新浪在国内的所有IP的教程
2015/05/04 Python
浅析Python的Django框架中的Memcached
2015/07/23 Python
python生成n个元素的全组合方法
2018/11/13 Python
Python如何实现转换URL详解
2019/07/02 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
Python Pandas 如何shuffle(打乱)数据
2019/07/30 Python
python利用tkinter实现图片格式转换的示例
2020/09/28 Python
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
2012/02/15 面试题
愚人节活动策划方案
2014/03/11 职场文书
活动总结新闻稿
2014/08/30 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
12.4法制宣传日标语
2014/10/08 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python