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

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

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
reateGromJpeg(string $filename) или 
int imageCreateGromif(string $filename) 

Часть IV. Стандартные функции PHP 318 
Эти функции загружают изображения из файла в память и возвращают его иденти- 
фикатор. Как и после вызова imageCreate(), дальнейшая работа с картинкой 
возможна только через этот идентификатор. При загрузке с диска изображение 
распаковывается и хранится в памяти уже в неупакованном формате, для того чтобы 

можно было максимально быстро производить с ним различные операции, такие как 
масштабирование, рисование линий 
и т. д. При сохранении на диск или выводе в браузер функцией imagePng() (или, 
соответственно, imageJpeg() и imageGif()) картинка автоматически упаковывает- 
ся. 
Стоит заметить, что не обязательно все три функции будут доступны в вашей 
версии PHP. 
Скорее всего, в ней не окажется функции imageCreateFromGif(), а возможно, и 
imageCreateFromJpeg(), потому что от первой разработчики GD просто отказа- 
лись, а вторая появилась сравнительно недавно. Надеюсь, в скором времени 
ситуация 
нормализуется, но сейчас, к сожалению, это не так. 
Определение параметров 
изображения 
Как только картинка создана и получен ее идентификатор, GD становится совершен- 

но все равно, какой формат она имеет и каким путем ее создали. То есть все 
осталь- 
ные действия с картинкой происходят через ее идентификатор, вне зависимости от 
формата, и это логично — ведь в памяти изображение все равно хранится в 
распако- 
ванном виде (наподобие BMP), а значит, информация о ее формате нигде не исполь- 

зуется. Так что вполне возможно открыть PNG-изображение с помощью 
imageCreateFromPng() и сохранить ее на диск функцией imageJpeg(), уже в дру- 
гом формате. В дальнейшем можно в любой момент времени определить размер за- 
груженной картинки, воспользовавшись функциями imageSX() и imageSY(): 
int imageSX(int $im) 
Функция возвращает горизонтальный размер изображения, заданного своим иденти- 
фикатором, в пикселах. 
int imageSY(int $im) 
Возвращает высоту картинки в пикселах. 
int imageColorsTotal(int $im) 
Эту функцию имеет смысл применять только в том случае, если вы работаете с изо- 

бражениями, "привязанными" к конкретной палитре — например, с файлами GIF. 
Она возвращает текущее количество цветов в палитре. Как мы вскоре увидим, каж- 
дый вызов imageColorAllocate() увеличивает размер палитры. В то же время 
известно, что если при небольшом размере палитры GIF-картинка сжимается очень 
хорошо, то при переходе через степень двойки (например, от 16 к 17 цветам) 
эффек- 
тивность сжатия заметно падает, что ведет к увеличению размера (так уж устроен 

Глава 23. Работа с изображениями 319 
формат GIF). Если мы не хотим этого допустить и собираемся вызывать 
imageColorAllocate() только до предела 16 цветов, а затем перейти на использо- 
вание imageColorClosest(), нам очень может пригодиться рассматриваемая функ- 
ция. 
Сохранение изображения 
Давайте займемся функцией, поставленной в листинг
 
<<-[Весь Текст]
Страница: из 287
 <<-