PHP处理图片

PHP使用GD库创建和处理包括GIF,PNG,jpef,wbmp以及xpm在内的多种格式的图像。

以下教程:图片合成文字,实现合成文字水平、垂直居中。

读取图片资源

imagecreatefrom 系列函数用于从文件或 URL 载入一幅图像,成功返回图像资源,失败则返回一个空字符串。

根据图片格式选用不同函数imagecreatefromgif():创建一块画布,并从 GIF 文件或 URL 地址载入一副图像

imagecreatefromjpeg():创建一块画布,并从 JPEG 文件或 URL 地址载入一副图像

imagecreatefrompng():创建一块画布,并从 PNG 文件或 URL 地址载入一副图像

imagecreatefromwbmp():创建一块画布,并从 WBMP 文件或 URL 地址载入一副图像

imagecreatefromstring():创建一块画布,并从字符串中的图像流新建一副图像

获取图片尺寸imagesx($image);

imagesy($image);

创建颜色imagecolorallocatealpha(resource $image , int $red , int $green , int $blue , int $alpha); // 带透明度

imagecolorallocate(resource $image , int $red , int $green , int $blue);      // 普通

获取文字内容所需尺寸imagettfbbox ( float $size, float $angle, string $fontfile, string $text):array

取得使用 TrueType 字体的文本的范围。(种类型字体文件的扩展名是.ttf,类型代码是tfil。)

以上是每个步骤使用的关键函数说明。以下是完整代码示例。<?php

/**

* Created by PhpStorm.

* User: Siam

* Date: 2019/2/4 0004

* Time: 下午 10:58

*/

$main = imagecreatefromjpeg('./test.jpg');

$fontSize = 38;

$width   = imagesx($main);

$height   = imagesy($main);

//1.设置字体的路径

$font    = "./t.ttf";

//2.填写水印内容

$content = "My name is Siam,中文是宣言";

//3.设置字体颜色和透明度

$color   = imagecolorallocatealpha($main, 255, 255, 255, 0);

$fontBox = imagettfbbox($fontSize, 0, $font, $content);//获取文字所需的尺寸大小

//4.写入文字 (图片资源,字体大小,旋转角度,坐标x,坐标y,颜色,字体文件,内容)

imagettftext($main, $fontSize, 0, ceil(($width - $fontBox[2]) / 2), ceil(($height - $fontBox[1] - $fontBox[7]) / 2), $color, $font, $content);

// 浏览器输出 也可以换成保存新图片资源

header("Content-type:jpg");

imagejpeg($main);

效果:

最关键的步骤是获取到文字内容所需的尺寸大小

原图的大小 - 文字内容的大小 = 剩余空白大小;

剩余空白大小 / 2 的效果就是自动居中。

我们可以在以上基础上封装成一个灵活的函数<?php

function imageAddText($path, $content, $x = 'auto', $y = 'auto', $fontSize = 38, $font = './t.ttf'){

$temp = array(1=>'gif', 2=>'jpeg', 3=>'png');

// 获取图片信息

$imageInfo = getimagesize($path);

$imageType = $temp[$imageInfo[2]];

$getfunc = "imagecreatefrom$imageType";

$outfunc = "image$imageType";

$resource = $getfunc($path);

$width    = imagesx($resource);

$height   = imagesy($resource);

$color = imagecolorallocatealpha($resource, 255, 255, 255, 0);

$fontBox = imagettfbbox($fontSize, 0, $font, $content);//文字水平居中实质

if ($x === 'auto'){

$x = ceil(($width - $fontBox[2]) / 2);

}

if ($y === 'auto'){

$y = ceil(($height - $fontBox[1] - $fontBox[7]) / 2);

}

imagettftext($resource, $fontSize, 0, $x, $y, $color, $font, $content);

/*输出图片*/

//浏览器输出

header("Content-type:".$imageType);

$outfunc($resource);

}

// 自动居中

// imageAddText('./test.jpg', 'My name is Siam,中文名是宣言');

// 声明x y值

// imageAddText('./test.jpg', 'My name is Siam,中文名是宣言',200);

// imageAddText('./test.jpg', 'My name is Siam,中文名是宣言','auto', '300');

Siam博客原文链接:→→→传送门

php文字怎么居中,PHP图片文字合成居中相关推荐

  1. Markdown更改字体、颜色、大小,设置文字背景色,调整图片大小设置居中,插入表格等方法

    Markdown更改字体.颜色.大小,设置文字背景色,调整图片大小设置居中,插入表格等方法 Markdown 通过简单标记语法,使普通文本内容具有一定格式.但它本身不支持修改字体.字号与颜色等功能的. ...

  2. Java调用百度OCR文字识别API实现图片文字识别软件

    java_baidu_ocr Java调用百度OCR文字识别API实现图片文字识别软件 这是一款小巧方便,强大的文字识别软件,由Java编写,配上了窗口界面 调用了百度ocr文字识别API 识别精度高 ...

  3. 图片文字提取,清华图片文字提取工具,wrod怎么提取图片文字,怎么把图片里面的文字提取?

    在学习工作生活中,我们会遇到一些只能查看却无法下载的文档,如果想要使用里面的文本内容怎么办,我们只能一边看文档一边打字,但是这样的效率太低了.有没有其他的好的方式呢?比如将文档拍照或者干脆截图,再把图 ...

  4. java ocr api_Java调用百度OCR文字识别API实现图片文字识别软件

    Java调用百度OCR文字识别API实现图片文字识别软件 原创isinple 发布于2019-01-06 13:35:59 阅读数 1296 收藏 展开 java_baidu_ocr Java调用百度 ...

  5. css图片跟文字居中,css 图片文字垂直居中

    先来看张图片 相信很多css新手遇到过这种问题,就是当图片和文本显示在一行的时候,效果很奇葩,文字和图片没法对齐, 这时我们需要做的是: 1,先给块级元素设置 display: inline-bloc ...

  6. html怎么在图片上加文字_怎么把图片文字转换成word文档

    我们在和别人交流的时候,有时候为了方便对方查看和理解,我们会使用文字图片进行交流,这是一种非常方便交流的形式.那如果我们想要将图片里的文字转换成Word文档应该怎么操作? 如果我们想要将图片识别为Wo ...

  7. python切割图片文字_Python+opencv 实现图片文字的分割的方法示例

    Python+opencv 实现图片文字的分割的方法示例 发布时间:2020-08-26 03:28:37 来源:脚本之家 阅读:116 作者:坏小孩90 实现步骤: 1.通过水平投影对图形进行水平分 ...

  8. python读取图片文字-Python3实现获取图片文字里中文的方法分析

    本文实例讲述了Python3实现获取图片文字里中文的方法.分享给大家供大家参考,具体如下: 一.运行环境 (1) win10 (2) pycharm (3) python 3.5 (4) pillow ...

  9. 【python 图片文字识别】pyocr图片文字识别

    无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.点这里可以跳转到教程.人工智能教程 pyocr 官方网 ...

  10. python识别文字软件_|python图片文字识别扫描工具下载免费版 - 欧普软件下载

    python图片文字识别扫描工具是一款文字识别软件,软件基于Python和百度识别接口设计而来,可快速识别图片中的文字,写入TXT文件,支持快捷键F1截屏,虽说是基于命令行的操作,但是操作也算简单,需 ...

最新文章

  1. Spring之HelloWorld再起
  2. Golang用body来get或post数据
  3. 并发异步处理队列 .NET 4.5+
  4. 【夯实Mysql基础】mysql explain执行计划详解
  5. 关于MOSS SDK的Web Content Management
  6. 2018.08.20高二互测
  7. dom4j-cookbook
  8. css资源网站收集推荐
  9. querydsl动态 sql_Spring data jpa 复杂动态查询方式总结
  10. html css . doc,html+CSS基础.doc
  11. 要想成功必须具备的九种手段
  12. linux分布式文件部署,Linux的企业-分布式文件系统mfs(moosefs)搭建与配置
  13. 鸿蒙系统手机开机,华为手机鸿蒙系统 OS 2.0 开机界面演示
  14. hive —— 分区表
  15. FreeRTOS学习笔记(11)——CPU使用率统计
  16. linux查看网络连接命令,linux查看网络链接状况命令之-netstat
  17. 雨点效果——HTML5之特效
  18. Spring5基础知识
  19. 「 LaTex 」写论文,作者旁添加ORCID
  20. 使用CMake构建/开始使用CMake

热门文章

  1. 机器学习实战2之科比篮球生涯得分数据分析
  2. java单例模式使用_Java单例模式的应用
  3. 高通骁龙430系列-MSM8937 ( Cortex-A53架构)
  4. 使用burp对Tomcat 弱密码爆破
  5. 【分享】李涛ps入门教程视频全集及精心整理包含素材
  6. wamp server 图标不变绿色 环境变量配置 和localhost打不开项目怎么处理
  7. SQL 循环语句 while 介绍 实例
  8. 微信公众号支付开发流程
  9. Java实现输出PDF
  10. Cesium开发基础篇 | 03加载矢量数据