2011-06-23 36 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。

祝你好運!

相關問題