如何在 Laravel PHP 中从文本创建图像而不需要任何外部库

2023-12-01

我正在使用此代码从文本在 Core PHP 中创建图像

header ("Content-type: image/png");
$text='[email protected]';
$string = $text;                                            
$font   = 3;
$width  = ImageFontWidth($font) * strlen($string);
$height = ImageFontHeight($font);

$im = @imagecreate ($width,$height);
$background_color = imagecolorallocate ($im, 255, 255, 255); //white background
$text_color = imagecolorallocate ($im, 0, 0,0);//black text
imagestring ($im, $font, 0, 0,  $string, $text_color);
echo imagepng ($im);

上面的代码在核心 PHP 文件中运行良好,但现在我正在 laravel 框架中处理项目。我对 laravel 完全陌生。当我在 laravel 中尝试相同的代码时,它不起作用。我尝试改变响应方法但仍然失败 这是我尝试过的。

public function imgCreate(){
    header ("Content-type: image/png");
    $text='[email protected]';
    $string = $text;                                            
    $font   = 3;
    $width  = ImageFontWidth($font) * strlen($string);
    $height = ImageFontHeight($font);
    $im = @imagecreate ($width,$height);
    $background_color = imagecolorallocate ($im, 255, 255, 255); //white background
    $text_color = imagecolorallocate ($im, 0, 0,0);//black text
    imagestring ($im, $font, 0, 0,  $string, $text_color);

    echo imagepng($im);
    //return response($im)->withHeaders(['Content-type'=>'image/png']); 
}

所以基本上,我在控制器函数(imgCreate)中粘贴了相同的代码。我尝试了不同的响应方法似乎都有错误 当我这样回来的时候

 //echo imagepng($im);
return response($im)->withHeaders(['Content-type'=>'image/png']);

它抛出一个错误“响应内容必须是实现 __toString() 的字符串或对象,给出“资源”。”

当我尝试简单的方法时

echo imagepng($im);
//return response($im)->withHeaders(['Content-type'=>'image/png']);  

我得到一个像这样不可读的字符串:-

“�PNG IHDRp K�xPLTE���U��~�IDAT�c0S �� ��q��������67?>�/�Ð8ۘ��f��3�%Hn�cH���}����H� �riggc�0Ncȝm�qss��ǒ%7�1X||x����l����ripW400#; �^10���IEND�B`�1"

是否可以从 Laravel 中的文本创建图像?或者我做错了什么? 据我所知,问题似乎是标题“Content-type”,它负责以图像形式返回结果。

提前致谢 !!!!!


您可以通过将图像编码为来实现这一点base_64

    $text='[email protected]';
    $string = $text;                                            
    $font   = 3;
    $width  = ImageFontWidth($font) * strlen($string);
    $height = ImageFontHeight($font);
    $im = @imagecreate ($width,$height);
    $background_color = imagecolorallocate ($im, 255, 255, 255); //white background
    $text_color = imagecolorallocate ($im, 0, 0,0);//black text
    imagestring ($im, $font, 0, 0, $string, $text_color);
    ob_start();
    imagepng($im);
    $imstr = base64_encode(ob_get_clean());
    imagedestroy($im);
    return view('index',array('data'=>$imstr));

并在您的视图中查看图像

    <img src="data:image/png;base64,{{ $data }}"/>

灵感来自https://stackoverflow.com/a/3386050/8317643

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Laravel PHP 中从文本创建图像而不需要任何外部库 的相关文章

  • MongoDB 给出奇怪的连接错误

    我在使用 PHP 连接 MongoDB 时遇到问题 这是我的代码 这会产生以下错误 Fatal error Uncaught exception MongoConnectionException with message localhost
  • Laravel VueJS:构建多页面应用程序而不诉诸单页面应用程序(SPA)方法

    我正在尝试构建 Laravel 5 5 VueJs 多页面应用程序 我不想使用 SPA 单页应用程序 方法使其看起来像是一个多页面应用程序 URL处的注册页面就是这种情况 register 通过命令php artisan make auth
  • 在 laravel 5 测试期间如何模拟外部 API?

    我想在 laravel 中测试 HTTP 路由 URL 的操作函数调用辅助函数 该函数调用外部 API 测试时如何模拟外部 API 调用 public function actionFunction helper new HelperCla
  • Symfony 生产日志

    在 Symfony 3 中 我是否可以在不打开调试模式的情况下将所有错误写入生产日志 错误将包括 http 500 错误或应用程序错误或 php 错误 这些错误由于生产时错误标志设置为 false 而被静音 当前生产的日志配置是 monol
  • PHP 中的 XPath 删除 HTML 标签

    我在 PHP 中使用 XPath 来检索 HTML 文档的一部分 假设我的 HTML 文档如下所示 div a href some link address com Hello a p Some text here p div div p
  • $_GET 作为 PHP 函数中的参数

    我有同样的问题 但是 我根据使用标头的 if 语句将用户重定向到通过函数构造的动态页面 为了使该函数正常工作 需要在标头的 GET 部分中传递参数 根据提供的答案 这是一种不好的做法 我应该用什么方式来做呢 function page ti
  • PHP,检查 URL 和文件是否存在?

    我为 WordPress 创建了一个插件 需要存在两个文件才能正常运行 第一个文件定义为文件系统路径 第二个文件定义为 URL 假设第一个文件是 home my site public html some folder required f
  • 访问自定义规则类中的另一个请求的输入 - Laravel

    我需要访问 request gt important在传递方法中 我需要它根据这个值验证名称 class TestCustom implements Rule public function passes attribute value p
  • 有没有办法清除所有会话中的一些会话数据?

    一般来说 我有以下场景 从数据库中获取产品及其相关数据 将获取的数据转换为 php product 对象 在会话中缓存产品对象 缓存是只读的 即客户在网站上查看产品 但也有类似的电话getProductIdsByCategory categ
  • 正则表达式匹配 2 个或更多单词

    我有一个正则表达式尝试匹配 2 个或更多单词 但它没有按预期工作 我究竟做错了什么 string i dont know do you know preg match a z b 2 string match echo pre print
  • 如何使用 php 命令使注册表单高度安全?

    我想让代码对用户来说真正安全 下面的代码显示了 php 代码 我已将其用于我的网站 现在我已经使用了一些验证 例如密码和重复密码必须匹配 并且用户必须输入所有字段 为了使其更安全 我想插入安全命令 例如 PDO mysqli crypto
  • Laravel - 如何使用供应商类?

    我想在 m paths php 文件上使用移动检测 我已将该包添加为composer json 中的必需项 并将其安装在供应商文件中 我现在该如何使用它 我尝试了这个答案 但没有成功 因为找不到该课程 Laravel 4 使用供应商类 ht
  • URL 重写 OpenCart 产品 SEO

    我想重写我的 opencart 网上商店的产品网址 Opencart 本身有一个 seo 实现 这真的很糟糕 我已经更新了 seo 实现 以便能够对多个类别使用相同的关键字 请参阅 Opencart 重复 URL 关键字 https sta
  • 需要 php pdo 内爆数组并在 mysql 中插入多行

    基于this https stackoverflow com questions 4629022 how to insert an array into a single mysql prepared statement w php and
  • 两个 mysql_fetch_array 语句

    是否有任何原因导致我无法在一个 while 循环中包含两个处理两个不同 mysql 查询结果的 mysql fetch array 语句 原因是我有两个来自 mysql 数据库的查询结果 每个结果包含两列 如下所示 Query 1 Date
  • Codeigniter:用户会话不断过期

    我正在使用 CodeIgniter 但在会话方面遇到了一个小问题 我已将 config php 中的 sess expiration 设置为 0 以便用户会话永远不会过期 但用户 甚至我自己 仍然偶尔会被踢出并要求再次登录 顺便说一句 我将
  • 删除删除线的 unicode 文本?

    我偶尔会收到用户的输入 他们正在使用那些烦人的 stikethrough 文本生成器 这破坏了我的代码 我尝试过在这里找到的一些代码 string preg replace x00 x1F x80 xFF string 它有效 但我需要它只
  • 使用 jQuery 将值发送到 $_GET

    我正在使用一个 PHP 脚本 该脚本正在通过 GET 等待两个值 我正在尝试使用 jQuery 传递这两个值 而这正是我不太擅长的地方 这是我得到的代码 有人能指出我正确的方向吗 谢谢 function xrate id rating aj
  • 将 IP 地址与 IPv6 块进行比较

    我使用 PHP 将用户 IP 地址与 IP 块列表进行比较 其中大多数是 IPv4 但其中一些是 IPv6 我从用户那里获得的 IP 地址始终与 IPv4 兼容 至少我是这么假设的 我将如何比较这个 这就是我现在正在使用的 function
  • 手动检查 php 中的 jpeg 文件结尾标记 ffd9 (?) 以捕获截断错误

    基本上是尝试从集合中删除损坏的 过早结束的 jpeg 文件 我认为如果文件末尾标记不存在 则意味着图像被截断 因此我认为它对我的目的无效 这是检查声音的方法吗 如果是的话 我有什么想法可以在 php 中实现这个吗 cheers 尝试这个 j

随机推荐