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分页显示制作详细讲解
Nov 19 PHP
php2html php生成静态页函数
Dec 08 PHP
PHP 判断常量,变量和函数是否存在
Apr 26 PHP
PHP 进程锁定问题分析研究
Nov 24 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
Jun 12 PHP
php查找指定目录下指定大小文件的方法
Nov 28 PHP
php使用Jpgraph绘制柱形图的方法
Jun 10 PHP
PHP查询附近的人及其距离的实现方法
May 11 PHP
php加密解密字符串示例
Oct 13 PHP
php实现URL加密解密的方法
Nov 17 PHP
php 数组处理函数extract详解及实例代码
Nov 23 PHP
Mac系统完美安装PHP7详细教程
Jun 06 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
神族 PROTOSS 概述
2020/03/14 星际争霸
随机广告显示(PHP函数)
2006/10/09 PHP
windows下zendframework项目环境搭建(通过命令行配置)
2012/12/06 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
2016/09/21 PHP
JavaScript DOM学习第四章 getElementByTagNames
2010/02/19 Javascript
Jquery cookie操作代码
2010/03/14 Javascript
跨浏览器通用、可重用的选项卡tab切换js代码
2011/09/20 Javascript
基于jquery tab切换(防止页面刷新)
2012/05/23 Javascript
js+html+css实现鼠标移动div实例
2013/01/30 Javascript
js实现基于正则表达式的轻量提示插件
2015/08/29 Javascript
JavaScript实现邮箱地址自动匹配功能代码
2016/11/28 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
vue.js简单配置axios的方法详解
2017/12/13 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
JavaScript canvas实现雪花随机动态飘落
2020/02/08 Javascript
JavaScript享元模式原理与用法实例详解
2020/03/09 Javascript
js实现轮播图特效
2020/05/28 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
2020/12/10 Vue.js
Python多线程和队列操作实例
2015/06/21 Python
python3写的简单本地文件上传服务器实例
2018/06/04 Python
python实现双色球随机选号
2020/01/01 Python
pytorch的batch normalize使用详解
2020/01/15 Python
HTML5如何实现元素拖拽
2016/03/11 HTML / CSS
Shopee马来西亚:随拍即卖,最佳行动电商拍卖平台
2017/06/05 全球购物
婚礼证婚人证婚词
2014/01/08 职场文书
生日宴会答谢词
2014/01/09 职场文书
集团薪酬管理制度
2014/01/13 职场文书
护理工作感言
2014/01/16 职场文书
教学质量评估实施方案
2014/03/17 职场文书
解除合同协议书
2014/04/17 职场文书
假释思想汇报范文
2014/10/11 职场文书
上课说话检讨书
2015/01/27 职场文书
MySQL 角色(role)功能介绍
2021/04/24 MySQL
拒绝盗图!教你怎么用python给图片加水印
2021/06/04 Python
Python常遇到的错误和异常
2021/11/02 Python
详解Vue slot插槽
2021/11/20 Vue.js