В предыдущем письме я продемонстрировал, что генерировать
картинки, содержащие антиалиасед-текст заданным шрифтом на стороне сервера
возможно.
Теперь вниманию уважаемого народа предлагается схема практического
использования данной возможности как для статических, так и для
динамических html.
идея заключается в следующем:
1. Дизайнер прописывает в нужном месте html
url вида
/someprefix/font/size/forecolor/backcolor/текст+сообщения.png
например -
<img src="/textpics/Arial-BoldItalic/18/#ffffff/#7777ff/Карта+сайта.png"
alt="Карта сайта">
2. на директорию someprefix
средствами apache вешается слегка
переделанный скрипт http://zinc.fe.msk.ru/dynamic-gifs/generate.gif.html
в качестве ErrorDocument 404
На /someprefix
включается CharsetRecodeFilenames или как его там.
Далее происходит следующее:
при обращении клиента к html, его браузер лезет за картинкой и либо
ее находит, либо управление передается на данный скрипт, который и генерит
картинку и кладет ее в нужное место (параллельно отдавая клиенту)
Данная схема обладает следующими преимуществами
1. если вдруг кому захотелось добавить новый раздел в менюшку,
картинка с текстом (или несколько, если там какой javascript)
сгенерируется автоматически (ради чего собственно все и затевалось)
2. если дизайнера не устраивает качество автоматической генерации,
(хочется, скажем ручного трекинга) он
может нарисовать картинку сам, и положить на нужное место. Гарантировано,
что ее не будут пытаться перезаписать.
3. Если вдруг дизайнер вздумал поменять шрифт, и забыл при этом
перерисовать пару картинок, то пользователю будут выданы автоматически
сгенеренные картинки, а не картинки от старого дизайна
4. Почти невозможно несовпадение надписи на картинке и того, что имелось в
виду в html. Если дизайнеру удалось-таки создать сей эффект, он лечится
вебмастером посредством команды rm.
Концептуальные неясности и прочие misfeatures:
1. Не совсем понятно, что делать с width и height.
2. Требуется делать русские буквы в именах файлов, со всеми вытекающими
проблемами (да еще и uri-escaping там руками писать)
Рассматривались варианты хранения текстов в Base64, но это годится
только для развитых систем управления контентом типа communiware.
3. Непонятен механизм удаления давно неиспользуемых картинок.
разве что
find /var/www/textpics -type f -atime +10|xargs rm
по крону гонять.
--------------------------------------------------
Victor Wagner vitus@xxxxxx
Programmer Office:7-(095)-203-51-19
Institute for Commerce Home: 7-(095)-135-46-61
Engineering http://www.ice.ru/~vitus
=============================================================================
= Apache-Talk@xxxxxxxxxxxxx mailing list =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C)
1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.