«Камчатский форум» logo

Здравствуйте, гость ( Вход | Регистрация )

3 страниц   1 2 3 >   ( К первому непрочитанному сообщению )
Ответить · Открыть тему
> Работа с графикой в PHP
psk
29.06.2007, 23:14
Сообщение #1


Заслуженный участник
*****

Награды: 4
Группа: ??????
Сообщений: 769
Регистрация: 09.11.2005

Репутация: 6 [ - / + ]


Пишу фотольбом. Возник вопрос. Есть ли в PHP средства для работы с bmp форматом?
Суть скрипта в том, что пользователь добавляет через web-интерфейс изображение, дальше оно обрабатывется. Например, если картинка больше определенного размера, она уменьшается до нужного. с jpeg, gif и png все ясно, а вот про bmp (или к примеру tiff) ничего в справочниках не пишут sad.gif


--------------------
Господи правый, пошли нам прозрения час
Офлайн · Карточка · Приват
^
Ilya V. Rudomilov
30.06.2007, 1:46
Сообщение #2


Путяра, пшёл вон!
*******

Награды: 9
Группа: ??????
Сообщений: 14 825
Регистрация: 30.03.2004

Репутация: 36 [ - / + ]


Цитата
Есть ли в PHP средства для работы с bmp форматом?

А зачем, собственно, именно BMP? Для веба это очень неудобный формат. Его использование скорее даже запрещено.


--------------------
Обязательно к изучению - мой блог о моей жизни в Чехии! И хватит спрашивать "Почему же Чехия?.." - все ответы описаны уже.
Офлайн · Карточка · Приват
^
psk
30.06.2007, 11:07
Сообщение #3


Заслуженный участник
*****

Награды: 4
Группа: ??????
Сообщений: 769
Регистрация: 09.11.2005

Репутация: 6 [ - / + ]


Цитата(Ilya V. Rudomilov @ 30.06.2007, 3:46)

А зачем, собственно, именно BMP? Для веба это очень неудобный формат. Его использование скорее даже запрещено.

Затем, чтобы скрипт был универсальным, чтобы не загружать неискушенного пользователя форматами изображений.
То, что bmp не используется в веб знаю. Нужно средство для загрузки изображения, на сервере оно будет сохраняться в JPEG.


--------------------
Господи правый, пошли нам прозрения час
Офлайн · Карточка · Приват
^
Rownt
30.06.2007, 19:48
Сообщение #4


Учитель созерцания
*******

Награды: 7
Группа: ??????
Сообщений: 3 261
Регистрация: 04.04.2004

Репутация: 25 [ - / + ]


Цитата(Paskam @ 30.06.2007, 0:14)

Пишу фотольбом. Возник вопрос. Есть ли в PHP средства для работы с bmp форматом?
Суть скрипта в том, что пользователь добавляет через web-интерфейс изображение, дальше оно обрабатывется. Например, если картинка больше определенного размера, она уменьшается до нужного. с jpeg, gif и png все ясно, а вот про bmp (или к примеру tiff) ничего в справочниках не пишут sad.gif


В PHP средств работы с графикой нет. С ней работают библиотеки расширения типа GDLib (GD2).
Начиная с версии 1.8, помимо gif, jpeg, png и xbm поддерживается и wbmp...
Другие форматы не поддерживаются и видимо поддерживаться не будут. Только недалекий человек будет пересылать на веб-сервер нескомпрессированные изображения. Те, кто прошивает графические библиотеки конверторами форматов, к таким, скорей всего не относятся.

Задача поставлена бестолково. Пользователя искушать не нужно, он и так искушен. Сегодня он захотел загрузить bmp, а завтра исполняемое приложение. Нужно не потакать ему, а обеспечить безопасность своего приложения невозможностью посылки другого формата вообще.


--------------------
... сами не летаем и другим не дадим...:)

Камчатская студия дизайна Art Fashion Line
Офлайн · Карточка · Приват
^
Kevin
30.06.2007, 20:10
Сообщение #5


*******
*******

Награды: 9
Группа: ????. ??????
Сообщений: 3 738
Регистрация: 02.04.2004

Репутация: 42 [ - / + ]


Paskam, поройся в груше, может там есть такие библиотеки.
Офлайн · Карточка · Приват
^
psk
30.06.2007, 22:40
Сообщение #6


Заслуженный участник
*****

Награды: 4
Группа: ??????
Сообщений: 769
Регистрация: 09.11.2005

Репутация: 6 [ - / + ]


Цитата(Rownt @ 30.06.2007, 21:48)
В PHP средств работы с графикой нет. С ней работают библиотеки расширения типа GDLib (GD2).
Начиная с версии 1.8, помимо gif, jpeg, png и xbm поддерживается и wbmp...
Другие форматы не поддерживаются и видимо поддерживаться не будут.

Так как, эта библиотека входит в состав PHP, скачанного с сайта www.php.net, думаю можно считать ее средством PHP. Но суть то не в этом.
GD 2.0.28 (по документации) поддерживает: GIF, JPEG, PNG, SWF, PSD, BMP, TIFF, JPC, JP2, JPX, JB2, SWC, IFF, WBMP, XBM. Только толку от этой поддержки кажется не много (если я правильно понимаю). А именно определение функцией getimagesize() параметров изобржения. Загрузить для обработки можно только GIF, JPEG и PNG.

Цитата
Только недалекий человек будет пересылать на веб-сервер нескомпрессированные изображения.

О таких тоже думать нужно smile.gif

Цитата
Задача поставлена бестолково. Пользователя искушать не нужно, он и так искушен. Сегодня он захотел загрузить bmp, а завтра исполняемое приложение. Нужно не потакать ему, а обеспечить безопасность своего приложения невозможностью посылки другого формата вообще.

Можно подробнее в чем бестолковость? И главное, как сделать толково?
Каким образом возможность загрузить изображения других форматов может нарушить безопасность? При загрузке пользуюсь проверкой формата как раз функцией getimagesize().
В моем скрипте загрузить файл на сервер может пользователь, у которого есть на это права.

Kevin, а что такое груше?
Нужно средство, которым может обеспечить хостер.

Сообщение отредактировал Paskam - 30.06.2007, 22:40


--------------------
Господи правый, пошли нам прозрения час
Офлайн · Карточка · Приват
^
Kevin
30.06.2007, 22:51
Сообщение #7


*******
*******

Награды: 9
Группа: ????. ??????
Сообщений: 3 738
Регистрация: 02.04.2004

Репутация: 42 [ - / + ]


Цитата(Paskam @ 01.07.2007, 0:40)
Kevin, а что такое груше?

Груша = Pear :-)
http://pear.php.net/
Офлайн · Карточка · Приват
^
psk
30.06.2007, 23:00
Сообщение #8


Заслуженный участник
*****

Награды: 4
Группа: ??????
Сообщений: 769
Регистрация: 09.11.2005

Репутация: 6 [ - / + ]


Цитата(Kevin @ 01.07.2007, 0:51)
Груша = Pear :-)
http://pear.php.net/

эмм, да. позорище то какое smile.gif
Kevin спасибо)


--------------------
Господи правый, пошли нам прозрения час
Офлайн · Карточка · Приват
^
Rownt
01.07.2007, 19:19
Сообщение #9


Учитель созерцания
*******

Награды: 7
Группа: ??????
Сообщений: 3 261
Регистрация: 04.04.2004

Репутация: 25 [ - / + ]


Цитата(Paskam @ 30.06.2007, 23:40)

Загрузить для обработки можно только GIF, JPEG и PNG.

Загрузить можно все, что угодно, включая .exe...

Не нужно путать поддержку форматов и возможность некоторых функций библиотеки работать с ними.
Посмотри phpinfo хостера и ты увидишь поддерживаемые форматы.
А то, что getimagesize может возвращать размеры bmp-файла, практически ничего тебе не дает.



--------------------
... сами не летаем и другим не дадим...:)

Камчатская студия дизайна Art Fashion Line
Офлайн · Карточка · Приват
^
psk
01.07.2007, 22:19
Сообщение #10


Заслуженный участник
*****

Награды: 4
Группа: ??????
Сообщений: 769
Регистрация: 09.11.2005

Репутация: 6 [ - / + ]


Цитата(Rownt @ 01.07.2007, 21:19)

Загрузить можно все, что угодно, включая .exe...

Я же написал "загрузить для ОБРАБОТКИ". Еще выше написал, что в обработку входит изменение размера изображения и сохранения его в JPEG-формат.
Цитата
Не нужно путать поддержку форматов и возможность некоторых функций библиотеки работать с ними.
Посмотри phpinfo хостера и ты увидишь поддерживаемые форматы.
А то, что getimagesize может возвращать размеры bmp-файла, практически ничего тебе не дает.

Мда. и в каком месте я что путаю?
getimagesize дает мне возможность сохранить на сервере только нужные форматы изображений.


--------------------
Господи правый, пошли нам прозрения час
Офлайн · Карточка · Приват
^
L@mer
02.07.2007, 16:37
Сообщение #11


Ветеран
******

Награды: 3
Группа: ??????
Сообщений: 1 368
Регистрация: 25.11.2005

Репутация: 20 [ - / + ]


Всем привет!
"Брошу свои пятнадцать копеек".
to Paskam:
Все сказанное в данном топике имеет смысл.
Если хочешь полной свободы при работе с графикой, то необходимо искать соответствующий инструмент,
Я тебе хочу предложить набор библиотек для работы с графикой Imagemagick, я лично встречал несколько фотогалерей, где в настройках на выбор предлагалось либо GD2, либо Imagemagick, соответственно фронтед для PHP существует. biggrin.gif

P.S. сам использую Imagemagick для пакетной обработки картинок: пишу на bash простенькие скрипты и вуаля - результат, без тысячи кликов мышью.


--------------------
Я бы изменил мир, но бог не дал исходников...
Изображение
Офлайн · Карточка · Приват
^
psk
02.07.2007, 22:54
Сообщение #12


Заслуженный участник
*****

Награды: 4
Группа: ??????
Сообщений: 769
Регистрация: 09.11.2005

Репутация: 6 [ - / + ]


LСобакаmer, спасибо. попробую разобраться)


--------------------
Господи правый, пошли нам прозрения час
Офлайн · Карточка · Приват
^
Vetinary
03.07.2007, 0:27
Сообщение #13


Заслуженный участник
*****

Награды: 3
Группа: VIP
Сообщений: 818
Регистрация: 18.09.2004

Репутация: 20 [ - / + ]


LСобакаmer абсолютно прав, ImageMagick - это решение при многих задачах, с которыми не под силу справиться GD


--------------------
"Коммерчески успешно принародно подыхать,
Об камни разбивать фотогеничное лицо,
Просить по-человечески, заглядывать в глаза
Добрым прохожим..."
© Янка, "Продано"

Mac OS X Hints — секреты Mac OS X
Офлайн · Карточка · Приват
^
Ilya V. Rudomilov
05.07.2007, 0:21
Сообщение #14


Путяра, пшёл вон!
*******

Награды: 9
Группа: ??????
Сообщений: 14 825
Регистрация: 30.03.2004

Репутация: 36 [ - / + ]


Цитата
P.S. сам использую Imagemagick для пакетной обработки картинок: пишу на bash простенькие скрипты и вуаля - результат, без тысячи кликов мышью.

Я на PHP графику через imagemagik обрабатываю - больше средств и работает быстрее, имхо. Но его поддержка есть не везде.


--------------------
Обязательно к изучению - мой блог о моей жизни в Чехии! И хватит спрашивать "Почему же Чехия?.." - все ответы описаны уже.
Офлайн · Карточка · Приват
^
Rownt
05.07.2007, 6:06
Сообщение #15


Учитель созерцания
*******

Награды: 7
Группа: ??????
Сообщений: 3 261
Регистрация: 04.04.2004

Репутация: 25 [ - / + ]


Цитата(Ilya V. Rudomilov @ 05.07.2007, 1:21)

Я на PHP графику через imagemagik обрабатываю - больше средств и работает быстрее, имхо. Но его поддержка есть не везде.


Заинтересовали... Могли бы сразу и по преимуществам поподробней пройтись...


--------------------
... сами не летаем и другим не дадим...:)

Камчатская студия дизайна Art Fashion Line
Офлайн · Карточка · Приват
^
Ilya V. Rudomilov
05.07.2007, 16:11
Сообщение #16


Путяра, пшёл вон!
*******

Награды: 9
Группа: ??????
Сообщений: 14 825
Регистрация: 30.03.2004

Репутация: 36 [ - / + ]


Цитата
Заинтересовали... Могли бы сразу и по преимуществам поподробней пройтись...

Значительно шире набор инструментов, поддержка огромного кол-ва форматов. ImageMagik - набор инструментов, подключаемый в PHP. GD же - встроенные в язык средства. GD был разработан специально для работы в языках программирования, а ImageMagik - в прикладных приложениях, поэтому его функционал шире.

Подробнее см. http://www.imagemagick.org/script/index.php


--------------------
Обязательно к изучению - мой блог о моей жизни в Чехии! И хватит спрашивать "Почему же Чехия?.." - все ответы описаны уже.
Офлайн · Карточка · Приват
^
psk
06.07.2007, 22:11
Сообщение #17


Заслуженный участник
*****

Награды: 4
Группа: ??????
Сообщений: 769
Регистрация: 09.11.2005

Репутация: 6 [ - / + ]


Илья, а как часто пользуешься графикой в PHP, и что конкретно делаешь?

И вообще, как используется серверная обработка графики в Веб (кроме счетчиков, фотоальбомов и подобного captcha)?


--------------------
Господи правый, пошли нам прозрения час
Офлайн · Карточка · Приват
^
psk
10.09.2007, 23:19
Сообщение #18


Заслуженный участник
*****

Награды: 4
Группа: ??????
Сообщений: 769
Регистрация: 09.11.2005

Репутация: 6 [ - / + ]


Немного не по теме (модератор поправит, надеюсь).
Переписываю скрипт фотоальбома. Не уменьшается ли производительность при большом числе файлов в одной папке на сервере? Т.е. при чтении файлов из этой папки.
В мыслях вообще помещать все фото в одну папку. Соответственно для каждой фотографии иметь запись в БД, где будет поле с именем (id) логического альбома для сайта.
Сейчас для каждого альбома создается отдельная папка, что неудобно, если нужно переместить фото в другой альбом.


--------------------
Господи правый, пошли нам прозрения час
Офлайн · Карточка · Приват
^
Ilya V. Rudomilov
11.09.2007, 1:13
Сообщение #19


Путяра, пшёл вон!
*******

Награды: 9
Группа: ??????
Сообщений: 14 825
Регистрация: 30.03.2004

Репутация: 36 [ - / + ]


Цитата
Илья, а как часто пользуешься графикой в PHP, и что конкретно делаешь?

Обычно с фотографиями. Бывает надписи добавить надо.
Цитата
Не уменьшается ли производительность при большом числе файлов в одной папке на сервере?

Уменьшается. Не помню точно цифру, но у тебя явно не встанет проблемы. Не более 50 тыс фотографий ведь?


--------------------
Обязательно к изучению - мой блог о моей жизни в Чехии! И хватит спрашивать "Почему же Чехия?.." - все ответы описаны уже.
Офлайн · Карточка · Приват
^
psk
11.09.2007, 1:32
Сообщение #20


Заслуженный участник
*****

Награды: 4
Группа: ??????
Сообщений: 769
Регистрация: 09.11.2005

Репутация: 6 [ - / + ]


Цитата(Ilya V. Rudomilov @ 11.09.2007, 3:13)

Уменьшается. Не помню точно цифру, но у тебя явно не встанет проблемы. Не более 50 тыс фотографий ведь?

Нет конечно. Думаю, не более чем пара сотен...
Но хочется иметь универсальные и устойчивые скрипты.
"подправить", конечно, дело получаса, но в таких случаях, обычно, из другого места совсем не вовремя вылазит какой-нибудь геморрой...


--------------------
Господи правый, пошли нам прозрения час
Офлайн · Карточка · Приват
^

3 страниц   1 2 3 >
Ответить · Открыть тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Код кнопки 88x31 Текстовая версия Русская версия Invision Power Board v2.1.7 © 2006  IPS, Inc.