GD库没有安装FreeType 支持Call to undefined function App\Services\imagettfbbox()

        GD库是一个功能强大的图像处理库,广泛用于生成和处理图像。然而,默认情况下,GD库不包含FreeType扩展,该扩展用于处理字体和文本。如果您需要在GD库中使用更多的字体和文本效果,您可以按照以下步骤安装和启用FreeType扩展:

在开始之前,请确保您的系统满足以下要求:

  • GD库已正确安装和配置。
  • PHP已正确安装和配置,并且版本支持GD库和FreeType扩展。
  • 管理员权限或root访问权限(如果需要)

一、下载FreeType安装包

        首先,您需要安装FreeType库。在大多数Linux发行版上,可以使用包管理器进行安装。例如,在Ubuntu上,可以使用以下命令安装:

cd /opt
# 下载
wget https://download.savannah.gnu.org/releases/freetype/freetype-2.10.0.tar.gz
# 解压
tar -xf freetype-2.10.0.tar.gz

        对于其他发行版,请参考相应的文档或使用适当的包管理器安装FreeType库。

二、编译安装FreeType

接下来,需要编译freeType库,请按照以下步骤进行:

cd freetype-2.10.0./configure --prefix=/home/freetype --enable-static --enable-sharedmake && make install

三、重新编译gd

下载GD库的源代码,然后进入GD库源代码目录:

# 找到gd编译安装目录
cd /usr/src/php/ext/gd# 如果是先安装了php-gd,那么在安装好freestyle后,需要先make clean。(重要!重要!重要)
make clean/usr/local/bin/phpize #这是phpize目录,如果不知道你的目录在哪 可以用find / -name phpize 查找一下# 我这边php版本是7.3,用的是--with-freetype-dir,7.4以上用--with-freetype这个代替了
./configure --with-php-config=/usr/local/bin/php-config --with-freetype-dir=/home/freetype/lib#前一个目录是原来编译安装php的目录,可以通过#find / -name php-config来查找,后一个目录是前面第一步安装包的目录下的lib目录,里面包含somake && make install

        完成编译和安装后,您需要在PHP配置中启用FreeType扩展。打开PHP配置文件(php.ini),找到以下行(如果不存在,请添加):

extension=gd.so

保存并关闭配置文件,然后重启Web服务器,根据你使用的Web服务器(例如Apache或Nginx),运行适当的命令以重启服务器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/719027.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

十五、单词造句

描述 GG Bond在和妹妹做一个游戏,GG Bond给定了妹妹一些单词字符串,他想让妹妹把这些单词拼接成以空格间隔开的句子,很可惜妹妹Python没有学好,你能使用join函数帮帮她吗? 输入描述: 多行输入多个字符串…

Java基础 - 7 - 常用API(二)

API(全称 Application Programming Interface:应用程序编程接口) API就是Java帮我们已经写好的一些程序,如类、方法等,可以直接拿过来用 JDK8 API文档:Java Platform SE 8 一. Object Object类的作用 Ob…

mybatis多数据源切换

1.前提 项目中有可能需要去其他的数据库取其他的表的信息 2.思路 2.1 直接使用原生jdbc(不推荐) 2.2 不使用我们全局配置的mybatis,对指定文件夹下使用我们指定的Session 3.解决办法 指定该配置的范围 package com.maycur.openapi.dao.my…

『Linux从入门到精通』第 ㉓ 期 - 管道

文章目录 💐专栏导读💐文章导读🐧进程间通信的目的🐧如何进行进程间通信🐧进程间通信的分类🐧管道🐦什么是管道🐦管道原理 🐧实例代码🐧管道的特点&#x1f4…

Protobuf学习笔记以及序列化的一些概念要点(暂放C++笔记专栏)

Protobuf学习笔记以及序列化的一些概念要点 —— 杭州 2024-03-03 文章目录 Protobuf学习笔记以及序列化的一些概念要点1.Protobuf概念2.实际测试2.1.准备一个test.proto2.2.使用 protoc 命令行工具来编译一个 Protocol Buffers 文件 test.proto3.3.创建一个main.cpp写C++代码…

mysql 事务的隔离级别

一、事务的隔离级别要解决的问题: 1)脏读:读到了其它事务未提交的数据即脏读,未提交意味着数据有可能会被回滚,也就是最终有可能不会存储到数据库中,即读到了最终不一定存在存在的数据,即为脏读…

如何选择程序员职业赛道:挑战与机遇并存的职业探索指南

程序员如何选择职业赛道? 作为程序员,选择职业赛道是一项重要的决策,不仅影响你的职业发展,也影响着你的工作生活。本文将为你介绍如何选择程序员职业赛道,以及每个方向的特点、挑战和机遇,帮助你做出明智…

《极客时间 - 左耳听风》【文章笔记 + 个人思考】

《极客时间 - 左耳听风》 原文链接 :https://time.geekbang.org/column/intro/100002201?tabcatalog 备注:加粗部分为个人思考 01 | 程序员如何用技术变现?(上) 备注:加粗部分为个人思考) 01 | 程序员如何…

Window系统部署Splunk Enterprise并结合内网穿透实现远程访问本地服务

文章目录 前言1. 搭建Splunk Enterprise2. windows 安装 cpolar3. 创建Splunk Enterprise公网访问地址4. 远程访问Splunk Enterprise服务5. 固定远程地址 前言 本文主要介绍如何简单几步,结合cpolar内网穿透工具实现随时随地在任意浏览器,远程访问在本地…

【24最新版PythonPycharm安装教程】小白保姆级别安装教程

今天,我就来教大家一下,如何去安装Python! 需要博主打包好的一键激活版Pycharm&&Python也可扫下方直接获取 ​ 1 了解Python Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明&…

[C++]使用纯opencv去部署yolov9的onnx模型

【介绍】 部署 YOLOv9 ONNX 模型在 OpenCV 的 C 环境中涉及一系列步骤。以下是一个简化的部署方案概述,以及相关的文案。 部署方案概述: 模型准备:首先,你需要确保你有 YOLOv9 的 ONNX 模型文件。这个文件包含了模型的结构和权…

Flutter Gradle下载失败的解决方案

Flutter Gradle可能会由于网络原因下载失败,这个时候我们可以首先下载Gradle,然后再进行配置。具体步骤如下: 第一步:下载对应版本的gradle 可以通过下面地址下载,也可以百度里面搜对应的版本 【极速下载】gradle各版本快速下载地…

【HTML】HTML基础2(一些常用标签)

目录 例子 首先是网页图标 然后是一些常用标签 插入图片 例子 <!DOCTYPE html> <html><head><link rel"icon" href"img/银河护卫队-星爵.png" type"image/x-icon"><meta charset"utf-8"><title>…

大数据的分类分级管理

一.背景 为了公司给的师带徒&#xff0c;为培训写点材料。让徒弟做事情要有章法&#xff0c;有行业视野&#xff0c;知道方向和资料从哪里去找。 二.参考标准 要管理企业的大数据&#xff0c;从什么地方开始呢&#xff1f;首先应该完成企业数据的分类、分级&#xff0c;或者参…

一文掌握python常用的dict(字典)操作

目录 一、字典的创建与基本特性 1.创建字典 2.字典的基本特性 二、字典的常用操作 1.访问字典中的值 2.添加、修改键值对 3.删除键值对 4.获取字典中的所有键、值和键值对 5.遍历字典 6.查找键是否存在 7.使用 get() 方法获取值 8.合并字典 9.字典排序 10.使用字…

如何限制一个账号只在一处登陆

大家好&#xff0c;我是广漂程序员DevinRock&#xff01; 1. 需求分析 前阵子&#xff0c;和问答群里一个前端朋友&#xff0c;随便唠了唠。期间他问了我一个问题&#xff0c;让我印象深刻。 他问的是&#xff0c;限制同一账号只能在一处设备上登录&#xff0c;是如何实现的…

Javascript:数组的使用

目录 一、前言 二、正文 三、结语 一、前言 为了能存储多个数据&#xff0c;我们接下来介绍数组。 二、正文 数组是一种将一组数据存储在单个变量名下的方式。 let arr[] 声明语法: let 数组名[数据1,数据2,..数据n] 例 let names[小明,小刚,小红,小丽] 数组是按顺序保存…

【大厂AI课学习笔记NO.56】(9)模型评测

作者简介&#xff1a;giszz&#xff0c;腾讯云人工智能从业者TCA认证&#xff0c;信息系统项目管理师。 博客地址&#xff1a;https://giszz.blog.csdn.net 声明&#xff1a;本学习笔记来自腾讯云人工智能课程&#xff0c;叠加作者查阅的背景资料、延伸阅读信息&#xff0c;及学…

Python采集学习笔记-request的get请求和post请求

使用http://httpbin.org测试,一个简单的 HTTP 请求和响应服务。(需联网)1.导入requests包 import requests 2.测试get请求 url http://httpbin.org/get par {key1: value1, key2: value2} # 不带参数请求 r1 requests.get(url) # 带参数请求 r2 requests.get(url, paramspa…

甘特图资源视图和任务视图的区别

甘特图(Gantt chart)是一种常用的项目管理工具,用于直观地展示项目的进度和各项任务的时间安排。甘特图包含资源视图和任务视图两种视角。 一个项目的甘特图demo &#xff1a; https://zz-plan.com/share/87f1340286f1343ba5 资源视图主要显示项目中不同资源的分配和利用情况…