2011-06-23 37 views
0

我正在使用Painty。 http://www.rabuser.info/painty.php到目前为止好。但我的问题是现在如何让它创建图像文件,而不是将其输出到屏幕上。事实上,我希望它在没有用户甚至通过AJAX访问页面的情况下创建它。HTML到使用Painty的图像文件

最终这是如何流动的。他们会去那里简介。从那里它运行一些Ajax,并从指定的一些HTML创建一个图像,并在那里显示图像配置文件。他们也可以链接到这个图像并显示它,因此我希望它成为一个文件的原因。

SIDENOTE:我看了看。如果有人发现一个更好的方式来制作HTML图像,请让我知道。

我正在制作各种各样的游戏卡片。所以如果你知道一个更好的方法来动态地为我的用户制作它们,请让我知道。

我不在Windows服务器上。所以请不要向我提及任何需要这些的东西。我没有使用C#/ ASP的anysort。所以请不要感谢你。

回答

1

imagepng($ im);你可以加入这一行:

imagejpeg($im, 'yoo.jpg', 75); //creates jpeg file at 75 percent quality 

如果仍然没有按;吨的工作,那么:

$ HTML = @ $ _ GET [ 'HTML']之后;添加这一行:

$html='<h1>Painty Heading</h1><hr/><p>Welcome<br /><b>Yo...</b></p><p align = right><img src="http://static.php.net/www.php.net/images/php.gif" align="right" /></p>'; 

和 'font_path'=> $ __ SERVER [ “DOCUMENT_ROOT”]后, 添加此行:

'font_path' => "./", 

和我还建议这些字体:

'font' => "VeraMono.ttf", 
'font_bold' => "VeraMoBd.ttf", 

在C:\ Windows \ fonts中找到这些文件

1

那么,Painty 应该是产生的图像。请确保您已正确设置你的头,按painty.php的说明:

$config = array(
    'input' => $_GET['html'], 
    'output' => "png", 
    'width' => 400, 
    'height' => 300, 
    'font_path' => "./", 
    'font' => "tahoma.ttf", 
    'font_bold' => "tahoma.ttf", 
    '' => '' 
); 
$str = $config['input']; 
if(get_magic_quotes_gpc()) 
{ 
    $str = stripslashes($str); 
} 
$im = painty($str); 
//Set header. secured from header injection. 

最重要的部分:

header("Content-Type: image/".str_replace("\r\n", "", $config['output'])); 
imagepng($im); 

header命令告诉服务器到文件当作图像 - 即使它可能被命名为image-generator.php。如果你将这个文件看作一个形象,以及,它应该是罚款:

<a href="image-generator.php?username=foo&level=36&class=Demoman"> 
    <img src="image-generator.php?username=foo&level=36&class=Demoman" /> 
</a> 

这是假设image-generator.php已被设置为接受$ _ POST数据。然后image-generator.php从该数据创建一个HTML文件,并将其作为输入发送给Painty。

祝你好运!

相关问题