27 图形图像GD

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 路老师在知乎上分享了PHP语言的知识,帮助大家入门并深入了解PHP。本文主要介绍了PHP的图形图像处理技术,包括如何查看GD库信息、创建简单图像以及在照片上添加文字等内容。 示例代码展示了如何使用GD库创建一个绿色图像和在图片上添加文字。下一篇文章将介绍如何使用图形图像处理技术生成验证码。

有胆量你就来跟着路老师卷起来! -- 纯干货,技术知识分享

路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。

image.gif 编辑


上篇文章介绍了Session的高级应用,实现了将session写入到数据库mysql中。本篇文章开始介绍PHP的图形图像处理技术这块内容。

1 GD库查看及应用

1.1 查看gd的库信息

我们使用的是phpstudy集成工具,默认extension=php_gd2.dll是开启的,所以我们直接在index.php里输入phpinfo()函数就能查看gd库信息。

<?php
echo phpinfo();
?>

image.gif

image.gif 编辑

1.2 创建简单图像

使用GD2函数库可以实现各种图形图像的处理。创建画布是使用GD2库来创建图像的第一步,无论创建什么样的图像,首先都需要创建一个画布,其他别的操作都是放在这个画布上完成的。创建画布可以使用imagecreate()函数实现。

案例:创建一个宽400像素,高100像素,背景色为RGB(50,200,50),最后输出一个png格式的绿色图像。

<?php
$img = imagecreate(400,100);
$bg = imagecolorallocate($img,50,200,50);
header("Content-type:image/png");
imagepng($img);
?>

image.gif

image.gif 编辑

1.3 在照片上添加文字

GD2函数库中的imageTTFText()函数可以实现用TrueType字体向图像写入文本的功能。语法如下:

array imagettftext(resource $image, float $size, float $angle, int $x, int $y ,int $color,string $fontfile ,string $text)

image.gif

参数如下表:

参数 说明
image 由图像创建函数返回的图像资源
size 字体尺寸。根据GD库的版本,为像素尺寸(GD1)或者点(磅)尺寸(GD2)
angle 角度制表示的角度,0度为从左向右读的文本,更高的数值表示逆时针旋转。例如90表示从下往上读。
x 由x,y所表示的坐标定义了第一个字符的基本点(大概是字符的左下角)。这和imagestring()不同,其xy定义了第一个字符的左上角,例如top left为 0,0
y y坐标。他设定了字体基线的位置,不是字符的最底端。
color 颜色。
fontfile 是想要使用的TrueType字体的路径
text UTF-8编码格式的文本字符串
<?php
header("Content-type:image/jpeg");
$path= "./images/123.jpg";
$img = imagecreatefromjpeg($path);
$textcolor = imagecolorallocate($img,255,0,255);
$fnt = "C:/Windows/Fonts/FORTE.TTF";
$str = "I'm Mr Lu";
imageTTFText($img,70,0,50,270,$textcolor,$fnt,$str);
imagejpeg($img);
imagedestroy($img);
?>

image.gif

image.gif 编辑

下一篇 使用图形图像处理 技术生成验证码

相关文章
|
16天前
|
PHP 计算机视觉 开发者
PHP中的图像处理:GD库与Imagick的应用比较
在PHP开发中,图像处理是一个常见的需求,尤其是在开发图像生成、编辑、缩放等功能时。PHP提供了两种主流的图像处理库——GD库和Imagick,它们各自具有不同的特点和适用场景。本文将对这两者进行比较,帮助开发者根据项目需求选择合适的图像处理工具。
|
6月前
|
存储 编解码 算法
MoviePy,一个超强的Python库
MoviePy,一个超强的Python库
434 1
|
6月前
|
Ubuntu Linux Windows
Linux应用开发基础知识——LCD上的矢量字体Freetype(六)
Linux应用开发基础知识——LCD上的矢量字体Freetype(六)
329 0
Linux应用开发基础知识——LCD上的矢量字体Freetype(六)
|
数据可视化
使用 ggpubr 包制图
使用 ggpubr 包制图
141 0
|
Linux
freetype库的移植
freetype库的移植
352 0
|
数据可视化
用ggpubr包制图
Hadley Wickham撰写的ggplot2[1]是好用的软件包,是可视化工具的必备包。但是,需要知道ggplot2一定的理论与原理,对新手来说,入门门槛还是比较高的。 而ggpubr软件包提供了一些易于使用的功能,基于ggplot2编写,语法十分简单的的图标。对于一些刚了解R语言,而想用R做可发表的图表的人来说,这真的太好用了! 下面对该文章ggpubr: Publication Ready Plots[2]进行讲解。
252 0
用ggpubr包制图
|
缓存 PHP 数据安全/隐私保护
一文看懂 GD2库
一文看懂 GD2库
一文看懂 GD2库
|
算法 PHP
php绘制奥运五环(GD)
php绘制奥运五环(GD)
181 0
php绘制奥运五环(GD)
|
编译器 Linux Android开发
图像库 libpng 编译与实践
在之前的文章中介绍了 stb_image 图像库,还顺带提到了 libpng 和 libjpeg ,这篇文章就是介绍如何在 Android 平台上用 CMake 编译 libpng 动态库以及 libpng 使用实践。
583 0
图像库 libpng 编译与实践