Динамическое изображение PHP с расширением PNG - PullRequest
3 голосов
/ 30 сентября 2011

Я пытаюсь сделать изображение, похожее на одно из следующих: http://www.danasoft.com/vipersig.jpg

Не совсем разумно по содержанию (отображение IP-адресов и заголовков), но в большей степени изображение PHP, отображаемое в формате PNG (поэтому я могу использовать его на веб-сайтах, в тегах изображений BB).

Я знаю, как создать динамическое изображение, но это только при посещении страниц PHP.Используете ли вы это сейчас, если это имеет значение:

$image = imagecreate(200, 60);
$text_color = imagecolorallocate($image, 255, 255, 0);

header("Content-type: image/png");

imagestring($image, 4, 40, 30, "hello", $text_color);

imagepng($image);
imagecolordeallocate($text_color);
imagedestroy($image);

Есть какие-нибудь мысли о том, как этого можно достичь?

Еще несколько примеров того, что я ищу: http://draynor.net/signatures

Редактировать: большинство комментариев касаются преобразования из PNG в PHP, я хочу преобразовать из PHP в PNG, просто чтобы прояснить ситуацию.

Ответы [ 2 ]

3 голосов
/ 30 сентября 2011

Вы близки, создайте свое изображение, как вы сделали выше, полезные переменные будут $_SERVER['REMOTE_ADDR'] (IP-адрес), $_SERVER['HTTP_USER_AGENT'] (браузер).См. зарезервированные серверные переменные .

Отформатируйте их на своем изображении и посмотрите, как вы хотите, просмотрев скрипт PHP в вашем браузере.

Тогда, если вы используетеApache, настройте правило перезаписи, чтобы переписать URL, чтобы он указывал на ваш PHP-скрипт.

Вот пример:

RewriteEngine On
RewriteRule ^/signatures/sig.png$ /signature.php [L]

Это будет перезаписывать http://yoursite.com/signatures/sig.png в http://yoursite.com/signature.php Таким образомпользователи могут встраивать этот png-URL в свои подписи или веб-страницы для отображения вашего изображения.

В конечном итоге вы можете иметь несколько подписей и переписать свои URL-адреса, переписав специальные параметры (например, с /signature/1234.png до signature.php?id=1234 или /signature/style1/1234.png до* * тысяча двадцать-одина). * * тысяча двадцать две

1 голос
/ 30 сентября 2011

Если вы используете хостинг на Apache, вы можете использовать mod_rewrite. Вот образец (не тестировался):

RewriteEngine On
RewriteRule /signatures/([A-Za-z0-9])+\.png$ /signature.php?name=$1

Вот учебник: http://www.easymodrewrite.com/ Дополнительная информация: http://httpd.apache.org/docs/current/mod/mod_rewrite.html

...