我正在尝试将文本字符串与图像合并。我已经在Stackoverflwo上找到了关于如何执行此操作的示例,但是当我加载脚本时,我得到的只是乱码。我认为这是一个字体问题,但我不知道如何解决这个问题。我将True类型字体(arial)放在与脚本相同的目录中。建议?这是我的代码:
<?php
$im = imagecreatefromjpeg('image.jpg');
//The numbers are the RGB values of the color you want to use
$black = ImageColorAllocate($im, 255, 255, 255);
//The canvas's (0,0) position is the upper left corner
//So this is how far down and to the right the text should start
$start_x = 10;
$start_y = 20;
$font = 'arial.ttf';
Imagettftext($im, 12, 0, $start_x, $start_y, $black, $font, 'text to write');
//Creates the jpeg image and sends it to the browser
//100 is the jpeg quality percentage
Imagejpeg($im, '', 100);
ImageDestroy($im)
?>
答案 0 :(得分:1)
您没有告诉浏览器您实际上是在向其发送图像,因此它会尝试将二进制数据解释为文本。
为了让浏览器知道它即将接收和映像,您必须向其发送内容类型。您需要将此行放在imagejpeg()
之前。
header('Content-Type: image/jpeg');
答案 1 :(得分:0)
Per the documentation,如果你没有保存到文件而不是空字符串,imagejpeg()
的第二个参数应为NULL:
Imagejpeg($im, NULL, 100);