Php 将文本显示为JPG

Php 将文本显示为JPG,php,fonts,Php,Fonts,我正在尝试将一些文本打印到png文件。我什么都试过了,但运气不好 这是我的密码: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="image/jpeg" /> </head> <body> <?php // Crea

我正在尝试将一些文本打印到png文件。我什么都试过了,但运气不好

这是我的密码:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Type" content="image/jpeg" />
</head>

<body>

<?php
// Create the image
$im = imagecreatetruecolor(100, 30);

// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);

// The text to draw
$text = 'Testing...';
// Replace path by your own font path
$font = 'fonts/FRE3OF9X.TTF'; //HAVE CHECKED THIS AND FILE EXISTS

// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

// Using imagepng() results in clearer text compared with imagejpeg()
imagejpeg($im);

imagedestroy($im);
?>

</body>
</html>

我尝试了各种字体文件,并通过更改文件名检查是否找到了该文件,以查看是否出现错误。我是否需要在服务器上安装其他东西来实现这一点


输出为乱码文本(例如tuvwxyz������).

为什么要发送两个内容类型标题?删除第一个显示其
text/html

删除:

仅此内容类型应保留在图像中

<meta http-equiv="Content-Type" content="image/jpeg" />

为什么要发送两个内容类型标题?删除第一个显示其
文本/html

删除:

仅此内容类型应保留在图像中

<meta http-equiv="Content-Type" content="image/jpeg" />


您可以始终使用base64编码字符串并将其显示为图像:

您可以始终使用base64编码字符串并将其显示为图像:

感谢您的回复。我将其保留在中,因为我在页面的其余部分需要它(不包括在代码中)。但是,出于测试目的,我从代码中删除了它,只得到了不同的垃圾。您不能从同一页面打印图像和html。您必须返回一个特定的内容类型以响应HTTP请求。
我只得到了不同的垃圾。
:这实际上是生成的图像,将该url加载到图像标记中,然后您将看到,或者也可以尝试在新的浏览器会话中打开它。我提供的代码是页面上所有的最新代码(去掉text/html内容类型)。当您说将URL加载到图像标记中时,您的意思是在我的页面上的where barcode.php是上面提供的代码吗?对不起,有点愚蠢。感谢您的建议,我们已经解决了问题。删除了HTML、标题和正文,重新引入了“标题('Content-Type:image/png');”并按照建议将文件放置在IMG标签中。非常感谢您的帮助。感谢您的回复。我将其保留在中,因为我在页面的其余部分需要它(不包括在代码中)。但是,出于测试目的,我从代码中删除了它,只得到了不同的垃圾。您不能从同一页面打印图像和html。您必须返回一个特定的内容类型以响应HTTP请求。
我只得到了不同的垃圾。
:这实际上是生成的图像,将该url加载到图像标记中,然后您将看到,或者也可以尝试在新的浏览器会话中打开它。我提供的代码是页面上所有的最新代码(去掉text/html内容类型)。当您说将URL加载到图像标记中时,您的意思是在我的页面上有上面提供的代码吗?抱歉,有点愚蠢。感谢您的建议,我们已经解决了问题。删除了HTML、标题和正文,重新引入了“header('Content-Type:image/png');”并按照建议将文件放置在IMG标记中。非常感谢您的帮助。