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分页函数
Oct 09 PHP
在WIN98下以apache模块方式安装php
Oct 09 PHP
eWebEditor v3.8 商业完整版 (PHP)
Dec 06 PHP
PHP读取ACCESS数据到MYSQL的代码
May 11 PHP
php操作JSON格式数据的实现代码
Dec 24 PHP
php中使用preg_match_all匹配文章中的图片
Feb 06 PHP
深入解析PHP内存管理之谁动了我的内存
Jun 20 PHP
PHP 7的一些引人注目的新特性简单介绍
Nov 08 PHP
开启PHP的伪静态模式
Dec 31 PHP
thinkPHP中验证码的简单实现方法
Dec 05 PHP
php实例化一个类的具体方法
Sep 19 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
Sep 15 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中的插件机制原理和实例
2014/07/08 PHP
Twig模板引擎用法入门教程
2016/01/20 PHP
PHP获取当前文件的父目录方法汇总
2016/07/21 PHP
Jquery Ajax的Get方式时需要注意URL地方
2011/04/07 Javascript
js中return false(阻止)的用法
2013/08/14 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
js全选实现和判断是否有复选框选中的方法
2015/02/17 Javascript
JavaScript中的对象与JSON
2015/07/03 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
JS实现可关闭的对联广告效果代码
2015/09/14 Javascript
基于jquery实现轮播焦点图插件
2016/03/31 Javascript
最好用的Bootstrap fileinput.js文件上传组件
2016/12/12 Javascript
原生JS实现图片轮播切换效果
2016/12/15 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
2017/09/05 jQuery
微信小程序实现左滑修改、删除功能
2020/10/19 Javascript
Vue开发Html5微信公众号的步骤
2019/04/11 Javascript
微信小程序npm引入vant-weapp的踩坑记录
2019/08/01 Javascript
简单使用webpack打包文件的实现
2019/10/29 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
[50:15]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python写的一个简单DNS服务器实例
2014/06/04 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
2018/04/02 Python
python 自动轨迹绘制的实例代码
2019/07/05 Python
python3实现斐波那契数列(4种方法)
2019/07/15 Python
python批量修改ssh密码的实现
2019/08/08 Python
如何基于matlab相机标定导出xml文件
2020/11/02 Python
HTML5 LocalStorage 本地存储刷新值还在
2017/03/10 HTML / CSS
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
信用社实习人员自我鉴定
2013/09/20 职场文书
打架检讨书100字
2014/01/08 职场文书
迟到检讨书500字
2014/02/05 职场文书
公务员群众路线专题民主生活会发言材料
2014/09/17 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
护士业务学习心得体会
2016/01/25 职场文书
Python Flask实现进度条
2022/05/11 Python