Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
ример, задачи "поставить слэш 
перед всеми кавычками в строке" и "заменить в строке все кавычки на "" 
мож- 
но и нужно решать при помощи str_replace(), а не ereg_Replace() (это сущест- 
венно — раз в 20 — повысит быстродействие). Не забывайте, что регулярное выра- 
жение — некоторого рода "насилие" над компьютером, принуждение делать нечто 
такое, для чего он мало приспособлен. Этим объясняется медлительность 
механизмов 
обработки регулярных выражений, экспоненциально возрастающая с ростом сложно- 
сти шаблона. 


Глава 23 
Работа с изображениями 
Как мы знаем, одним из самых важных достижений WWW по сравнению со всеми 
остальными службами Интернета стала возможность представления в браузерах 
пользователей мультимедиа-информации, а не только "сухого" текста. Основной 
объ- 
ем этой информации приходится, конечно же, на изображения. 
Разумеется, было бы довольно расточительно хранить и передавать все рисунки в 
обыкновенном растровом формате (наподобие BMP), тем более, что современные 
алгоритмы сжатия позволяют упаковывать такого рода данные в сотни и более раз 
эффективней. Чаще всего для хранения изображений используются три формата сжа- 
тия с перечисленными ниже свойствами. 
r JPEG. Идеален для фотографий, но сжатие изображения происходит с потерями 
качества, так что этот формат совершенно не подходит для хранения различных 
диаграмм и графиков. 
r GIF. Позволяет достичь довольно хорошего соотношения размер/качество, в то же 

время не искажая изображение; применяется в основном для хранения небольших 
точечных рисунков и диаграмм. 
r PNG. Сочетает в себе хорошие стороны как JPEG, так и GIF, но в настоящий мо- 
мент ему почему-то не выражают особого доверия — скорее, по историческим 
причинам, из-за нежелания отказываться от GIF и т. д. 
В последнее время GIF все более вытесняется форматом PNG, что связано в первую 
очередь с окончанием действия бесплатной лицензии изобретателя на его использо- 

вание. К сожалению, для небольших изображений GIF все еще остается самым опти- 
мальным форматом, оставляя позади (иногда далеко позади) PNG. 
Зачем может понадобиться в Web-программировании работа с изображениями? Разве 
это не работа дизайнера? 
В большинстве случаев это действительно так. Однако есть и исключения, например,
 
графические счетчики (автоматически создаваемые картинки с отображаемым поверх 
числом, которое увеличивается при каждом "заходе" пользователя на страницу), 
или 
же графики, которые пользователь может строить в реальном времени — скажем, 
диаграммы сбыта продукции или снижения цен на комплектующие. Все эти прило- 
жения требуют как минимум умения генерировать изображения "на лету", причем с 
довольно большой скоростью. Чтобы этого добиться на PHP, можно применить два 
способа: задействовать какую-нибудь внешнюю утилиту для формирования изобра- 

Глава 23. Работа с изображениями 315 
жения (например, известную программу fly), или же воспользоваться встроенными 
функциями PHP для работы с графикой. Оба способа имеют как достоинства, так и 
недостатки, но, пожалуй, недостатков меньше у второго метода, так что им-то мы 
и 
займемся в этой главе. 
С недавнего времени все программные продукты, которые умели формировать изо- 
бражения в формате GIF, переориентируются на PNG. В частности, не так давно 
ком- 
пания, поддерживающая библиотеку GD для работы с GIF-изображениями, перепи- 
сала ее код с учетом формата PNG. Так как PHP использует эту библиотеку, то 
поддержка GIF автоматически исключилась и из него. К счастью, в Интернете все 
еще можно найти старые версии GD с поддержкой GIF и, таким образом, настроить 
PHP для работы с этим форматом, но задумайтесь: стоит ли теперь применять GIF, 
если весь мир вполне успешно переходит на PNG, тем более, что его поддерживают 
практически все современные браузеры (четвертой версии) — а это 98% от исполь- 
зуемого их числа... 
Универсальная функция 
GetImageSize() 
Что же, работать с картинками приходится часто — гораздо чаще, чем может пока- 
заться на первый взгляд. Среди наиболее распространенных операций можно особо 
выделить одну — определение размера рисунка. Чтобы сделать программистам 
"жизнь раем", разработчики PHP встроили в него функцию, которая работ
 
<<-[Весь Текст]
Страница: из 287
 <<-