0

0

PHP图像操作教程:3D图、缩放、旋转、裁剪、添加水印

php中文网

php中文网

发布时间:2016-06-08 17:21:02

|

1477人浏览过

|

来源于php中文网

原创

图片操作在网站的应用相当广范,特别是现在互联网高度发达,很多内容都是以图片来显示,现在我们来讲讲用php来操作上传的图片,3D图片绘制、图片缩放、图片旋转、图片裁剪、图片添加水印。

1、利用php gd库的函数绘制3d扇形统计图

 

 代码如下 复制代码
header("content-type","text/html;charset=utf-8");
/*扇形统计图*/
$image = imagecreatetruecolor(100, 100);    /*创建画布*/
/*设置画布需要的颜色*/
$white = imagecolorallocate($image,0xff,0xff,0xff);
$gray = imagecolorallocate($image, 0xc0, 0xc0, 0xc0);
$darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);
$navy = imagecolorallocate($image, 0x00, 0x00, 0x80);
$darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);
$red = imagecolorallocate($image, 0xff, 0x00, 0x00);
$darkred = imagecolorallocate($image, 0x90, 0x00, 0x00);

/*填充背景色*/
imagefill($image, 0, 0, $white);

/*3D制作*/
for($i = 60; $i > 50; $i--)
{
    imagefilledarc($image, 50, $i, 100, 50, -160, 40, $darknavy, IMG_ARC_PIE);
    imagefilledarc($image, 50, $i, 100, 50, 40, 75, $darkgray, IMG_ARC_PIE);
    imagefilledarc($image, 50, $i, 100, 50, 75, 200, $darkred, IMG_ARC_PIE);
}

/*画椭圆弧并填充*/
imagefilledarc($image, 50, 50, 100, 50, -160, 40, $darknavy, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 40, 75, $darkgray, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 75, 200, $darkred, IMG_ARC_PIE);


/*画字符串*/
imagestring($image, 3, 15, 55, "30%", $white);
imagestring($image, 3, 45, 35, "60%", $white);
imagestring($image, 3, 60, 60, "10%", $white);

/*输出图像*/
header("content-type:image/png");
imagepng($image);

/*释放资源*/
imagedestroy($image);
?>


2、对图片进行缩放

 代码如下 复制代码

   

原图大小


    PHP图像操作教程:3D图、缩放、旋转、裁剪、添加水印


header("content-type","text/html;charset=utf-8");

/*
 *图片缩放
 *@param string $filename   图片的url
 *@param int    $width      设置图片缩放的最大宽度
 *@param int    $height     设置图片缩放的最大高度
 */
function thumb($filename,$width=130,$height=130)
{
    /*获取原图的大小*/
    list($width_orig,$height_orig) = getimagesize($filename);

    /*根据参数$width和$height,换算出等比例的高度和宽度*/
    if($width && ($width_orig     {
        $width = ($height / $height_orig) * $width_orig;
    }
    else
    {
        $height = ($width / $width_orig) * $height_orig;
    }

    /*以新的大小创建画布*/
    $image_p = imagecreatetruecolor($width, $height);

    /*获取图像资源*/
    $image = imagecreatefrompng($filename);

    /*使用imagecopyresampled缩放*/
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

    /*保存缩放后的图片和命名*/

    imagepng($image_p,'test.png');

    /*释放资源*/

    imagedestroy($image_p);
    imagedestroy($image);
}

/*调用函数*/
thumb('1.png');
?>


   

缩放后的大小


    PHP图像操作教程:3D图、缩放、旋转、裁剪、添加水印


3、PHP对图像的裁剪

超能文献
超能文献

超能文献是一款革命性的AI驱动医学文献搜索引擎。

下载
 代码如下 复制代码

   

裁剪之前


    PHP图像操作教程:3D图、缩放、旋转、裁剪、添加水印


header("content-type","text/html;charset=utf-8");
/*
*图片裁剪
*@param string $filename   图片的url
*@param int    $width      图片裁剪宽度
*@param int    $height     图片裁剪高度
*@param int    $x          裁剪图片左边开始的位置
*@param int    $y          裁剪图片顶边开始的位置
*/
function cut($filename,$x,$y,$width,$height)
{
    /*获取图像资源,需要裁剪的图片*/
    $image = imagecreatefrompng($filename);

    /*以新的大小创建画布,保存裁剪后的图片*/

    $image_p = imagecreatetruecolor($width, $height);

    /*使用imagecopyresampled缩放*/
    imagecopyresampled($image_p, $image, 0, 0, $x, $y, $width, $height, $width, $height);
    /*保存裁剪后的图片和命名*/
    imagepng($image_p,'test1.png');
    /*释放资源*/
    imagedestroy($image_p);
    imagedestroy($image);
}

/*调用函数*/
cut('1.png',20,20,80,80);           
?>


   

裁剪之后


    PHP图像操作教程:3D图、缩放、旋转、裁剪、添加水印
 

4、PHP为图像添加水印

 代码如下 复制代码

   

没有水印


    PHP图像操作教程:3D图、缩放、旋转、裁剪、添加水印


header("content-type","text/html;charset=utf-8");
/*
*给背景图片添加水印,背景图片格式png,水印格式gif
*@param string $filename   图片的url
*@param string $water      水印图片
*/
function watermark($filename,$water)
{
    /*获取原图的大小*/
    list($b_w,$b_h) = getimagesize($filename);
    /*获取水印图片的大小*/
    list($w_w,$w_h) = getimagesize($water);
    /*在背景图片中放水印图片的随机起始位置*/
    $posX =rand(0,($b_w - $w_w));
    $posY =rand(0,($b_h - $w_h));
    /*获取图像资源,需要裁剪的图片*/
    $back = imagecreatefrompng($filename);
    $water =  imagecreatefromgif($water);
    /*使用Inagecopy函数复制水印图片到指定位置*/
    imagecopy($back, $water, $posX, $posY, 0, 0, $w_w, $w_h);
    /*保存带水印的图片和命名*/
    imagepng($back,'test2.png');
    /*释放资源*/
    imagedestroy($back);
    imagedestroy($water);
}

/*调用函数*/
watermark('1.png','test.gif');           
?>


   

加上水印


    PHP图像操作教程:3D图、缩放、旋转、裁剪、添加水印
 

 

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
java 抽象方法
java 抽象方法

本专题整合了java抽象方法定义、作用教程等内容,阅读专题下面的文章了解更多详细内容。

0

2026.02.05

Eclipse创建jsp文件教程合集
Eclipse创建jsp文件教程合集

本专题整合了Eclipse创建jsp文件、创建jsp项目等等内容,阅读专题下面的文章了解更多详细教程。

0

2026.02.05

java 字符串转数字
java 字符串转数字

本专题整合了java如何字符串转数字相关内容,阅读专题下面的文章了解更多详细教程。

2

2026.02.05

java中jlabel的作用
java中jlabel的作用

本专题整合了java中label相关内容,阅读专题下面的文章了解更多详细教程。

0

2026.02.05

java return合集
java return合集

本专题整合看java中return关键词的用途,语句的使用等等内容,阅读专题下面的文章了解更多详细内容。

2

2026.02.05

AO3官网入口与镜像站汇总 Archive of Our Own访问路径及最新入口
AO3官网入口与镜像站汇总 Archive of Our Own访问路径及最新入口

本专题专注于提供Archive of Our Own (AO3) 的最新官网入口与镜像站地址,详细整理了可用的访问路径,包括中文镜像站入口和网页版直达链接,帮助用户轻松找到最稳定的访问方式,确保顺畅浏览AO3内容。

8

2026.02.05

192.168.1.1路由器后台管理入口与设置登录指南
192.168.1.1路由器后台管理入口与设置登录指南

本专题汇总了192.168.1.1路由器的后台管理入口、登录网址以及无线网络设置的方法,帮助用户快速进入路由器管理页面,进行网络配置、密码修改等常见操作,提升家庭网络的管理与优化效率。

1

2026.02.05

Python 数据库优化与性能调优
Python 数据库优化与性能调优

本专题专注讲解 Python 在数据库性能优化中的应用,包括数据库连接池管理、SQL 查询优化、索引设计与使用、数据库事务管理、分布式数据库与缓存系统的结合。通过分析常见性能瓶颈,帮助开发者掌握 如何优化数据库操作,提升 Python 项目在数据库层的响应速度与处理能力。

2

2026.02.05

Java 微服务与 Spring Cloud 实战
Java 微服务与 Spring Cloud 实战

本专题讲解 Java 微服务架构的开发与实践,重点使用 Spring Cloud 实现服务注册与发现、负载均衡、熔断与限流、分布式配置管理、API Gateway 和消息队列。通过实际项目案例,帮助开发者理解 如何将传统单体应用拆分为高可用、可扩展的微服务架构,并有效管理和调度分布式系统中的各个组件。

0

2026.02.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 15.5万人学习

Pandas 教程
Pandas 教程

共15课时 | 1万人学习

C# 教程
C# 教程

共94课时 | 8.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号