HTML в файл изображения с помощью Painty - PullRequest
0 голосов
/ 24 июня 2011

Я использую Painty.http://www.rabuser.info/painty.php Пока все хорошо.Но теперь у меня вопрос, как заставить его создать файл изображения вместо вывода его на экран.На самом деле я хочу, чтобы он создавался так, чтобы пользователь даже не заходил на страницу, возможно, через AJAX.

В конце концов, так оно и будет.Они пойдут туда профиль.Оттуда он запускает Ajax и создает изображение из некоторого HTML-кода, который я указал, и отображает изображение в своем профиле.Они также смогут ссылаться на это изображение и показывать его, поэтому я хочу, чтобы это был файл.

СИДЕНОТА: Я посмотрел и посмотрел.Если кто-нибудь найдет лучший способ сделать HTML-код изображения, пожалуйста, дайте мне знать.

Я делаю своего рода карточку игрока.Поэтому, если вы знаете лучший способ сделать их динамически для моих пользователей, пожалуйста, дайте мне знать.

Я не на Windows Server.Поэтому, пожалуйста, не направляйте меня ни к чему, что могло бы понадобиться.Я не использую Anysort C # / ASP.Поэтому, пожалуйста, ничего из этого, спасибо.

Ответы [ 2 ]

1 голос
/ 25 марта 2014

После 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 голос
/ 01 июля 2011

Ну, 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 в качестве входных данных.

Удачи!

...