27 图形图像GD

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 Tair(兼容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 编辑

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

相关文章
ly~
|
2月前
|
监控 Linux API
如何评估 SDL 图形库优化的效果
SDL(Simple DirectMedia Layer)是一个免费开源的多媒体开发库,广泛用于游戏和多媒体应用。优化后的SDL在性能、图像质量、加载速度、兼容性、跨平台性和开发效率等方面均有显著提升。性能方面,优化后的SDL提高了渲染效率和播放路数;图像质量上,通过先进的渲染技术提升了图像的清晰度和色彩准确性;加载速度方面,通过减少格式转换时间加快了图像加载速度;兼容性和跨平台性得到增强,支持多种操作系统和硬件设备;开发效率方面,简洁的API设计和丰富的文档帮助开发者快速上手,减少了开发时间和成本。这些优化使SDL成为游戏开发和多媒体应用的理想选择。
ly~
82 4
|
6月前
|
算法 数据挖掘 计算机视觉
刷力扣必备ImageMagick: 强大的图像处理套件
刷力扣必备ImageMagick: 强大的图像处理套件
刷力扣必备ImageMagick: 强大的图像处理套件
|
7月前
|
Ubuntu Linux Windows
Linux应用开发基础知识——LCD上的矢量字体Freetype(六)
Linux应用开发基础知识——LCD上的矢量字体Freetype(六)
369 0
Linux应用开发基础知识——LCD上的矢量字体Freetype(六)
|
Java Go 调度
【修正版】动图图解!GMP模型里为什么要有P?背后的原因让人暖心
【修正版】动图图解!GMP模型里为什么要有P?背后的原因让人暖心
126 0
|
传感器 编解码 Python
【HaaS Python硬件积木】空气质量检测模块 - CCS811
【HaaS Python硬件积木】空气质量检测模块 - CCS811
225 0
|
缓存 PHP 数据安全/隐私保护
一文看懂 GD2库
一文看懂 GD2库
一文看懂 GD2库
|
算法 PHP
php绘制奥运五环(GD)
php绘制奥运五环(GD)
188 0
php绘制奥运五环(GD)
|
计算机视觉
我的Qt作品(2)基于机器视觉+运动控制的数控软件,使用Qt和OpenCV库
我的Qt作品(2)基于机器视觉+运动控制的数控软件,使用Qt和OpenCV库
423 0
我的Qt作品(2)基于机器视觉+运动控制的数控软件,使用Qt和OpenCV库
|
存储 Java Unix
图像库libjpeg-turbo编译与实践
今天的主题就是libjpeg-turbo。
877 0
图像库libjpeg-turbo编译与实践
|
编译器 Linux Android开发
图像库 libpng 编译与实践
在之前的文章中介绍了 stb_image 图像库,还顺带提到了 libpng 和 libjpeg ,这篇文章就是介绍如何在 Android 平台上用 CMake 编译 libpng 动态库以及 libpng 使用实践。
593 0
图像库 libpng 编译与实践