合并文本与图像

时间:2012-03-05 15:08:13

标签: php

我正在尝试将文本字符串与图像合并。我已经在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)
?>

2 个答案:

答案 0 :(得分:1)

您没有告诉浏览器您实际上是在向其发送图像,因此它会尝试将二进制数据解释为文本。

为了让浏览器知道它即将接收和映像,您必须向其发送内容类型。您需要将此行放在imagejpeg()之前。

header('Content-Type: image/jpeg');

答案 1 :(得分:0)

Per the documentation,如果你没有保存到文件而不是空字符串,imagejpeg()的第二个参数应为NULL:

Imagejpeg($im, NULL, 100);