将php字符串转换为图像

Posted

技术标签:

【中文标题】将php字符串转换为图像【英文标题】:Convert php string to image 【发布时间】:2015-10-20 10:10:39 【问题描述】:

我想将 php 字符串转换为图像。 我用这个代码

header("Content-type: image/png");
$string = '.the_title().';

$font  = 5;
$width  = imagefontwidth($font) * strlen($string);
$height = imagefontheight($font);

$image = imagecreatetruecolor ($width,$height);
$white = imagecolorallocate ($image,255,255,255);
$black = imagecolorallocate ($image,0,0,0);
imagefill($image,0,0,$white);

imagestring ($image,$font,0,0,$string,$black);

imagepng ($image);
imagedestroy($image)    

但它将 the_title 显示为文本而不是执行字符串

【问题讨论】:

php string to image imagecreatefromstring fault的可能重复 它没有重复阅读完整的帖子,它是关于 base64 字符串的 【参考方案1】:

使用imagecreatefromstring

$string = '.the_title().';

$data = base64_decode($string);

$im = imagecreatefromstring($data);
if ($im !== false) 
    header('Content-Type: image/png');
    imagepng($im);
    imagedestroy($im);

【讨论】:

不显示任何内容 @ninju 你只是复制/粘贴 php 示例而不进行测试... 我没有测试,仅供参考 参考什么?这不适用于 php 字符串。它适用于 base64 编码的字符串,但这不是我的问题【参考方案2】:

使用imagestring 喜欢:

<?php

$string = the_title();

$im = imagecreate(150, 20); // image size 150x20px
imagecolorallocate($im, 255, 255, 255); // background white
$text_color = imagecolorallocate($im, 0, 0, 0); // text color black

imagestring($im, 3, 5, 5, $string, $text_color); // append string to image

header('Content-type: image/png'); // filetype
imagepng($im, 'image.png'); // save as image.png
imagedestroy($im); // free up memory

【讨论】:

搜索gd 是否存在于您的phpinfo(); 中参见***.com/questions/26161655/… gd 已启用,您的代码无法正常工作。我能够将上面的“我的代码”与普通文本字符串一起使用(返回图像) 我尝试使用字符串“test”,它的工作原理。所以使用字符串 'the_title()';它的作品。 可能有错别字。我刚刚尝试了 php.net 中的“图像字符串代码”并将文本字符串替换为 $string。这可行,但只返回 the_title() 而不是执行 php 字符串 图像创建也可以使用我的代码,这不是我的问题。我的问题是 the_title() 应该返回帖子的标题。那没有发生,创建的图像中只有文本 the_title() 而不是帖子名称

以上是关于将php字符串转换为图像的主要内容,如果未能解决你的问题,请参考以下文章

将base 64编码字符串转换为图像

如何使用 PHP 将 HTML 转换为 XML-TEI?

如何在 PHP 中将图像从 base 64 转换为它们的文件类型?

将图像转换为字符串的数据大小

如何将图像转换为 Base64 字符串,并转换回图像,保存到 azure blob

将图像转换为 Base64 字符串