как видно если взять картинку (h:100, w:300), она обрезается но видны белые поля... Мне надо что бы из небыло... явно другой скрипт нужен, но не могу внедрить... Или покажите реально рабочий скрипт который у вас есть
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Kubert пишет:
как видно если взять картинку (h:100, w:300), она обрезается но видны белые поля...
Следовательно, невозможно без потери качества ужать изображение до этих размеров. Выхода 2:
0) обрезать края, выступающие за 100х300 в оригинальном изображении, тогда что-то теряем, но изображение ровно 100х300 выходит.
1) сделать не фиксированный, а динамические границы. Т.е. в соответствии с соотношением сторон исходной картинки отклоняется от "идеальной" ширина или высота получающейся, смотря какая сторона не дотягивает в эти самые 100х300 пикселей. Тогда получается (в зависимости от логики скрипта) картинка не более 100х300, например, 100х270 и др.
А конкретно для сжимания изображения (например):
resizetofile($file,300,"klein/",45); где $file - имя/путь к изображению.
Kubert пишет:
+ ковсему нужно же обрезать картирнку к примеру 100 на 100... к примеру по середине... перерыл инет кучу скриптов нашел, но не получается внедрить
А это уже другой путь будет, если её надо именно обрезать, а не ужать.
----- PostgreSQL DBA
JustUserR
Отправлено: 06 Июля, 2010 - 14:54:25
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Kubert пишет:
Как видно если взять картинку (h:100, w:300), она обрезается но видны белые поля... Мне надо что бы из небыло... явно другой скрипт нужен, но не могу внедрить...
Для изменение размеров картинки требуется определенный алгоритм который на основе картинки старого размера создает шаблон нового размера и определенным образом определяет цвет каждого нового пикселя - в любом случае при таком процессе происходит понижения качества но в случае некорректной работы могут происходить дополнительные искажения Причиной их возникновения служит то что число пикселей в изображении всегда целое число и каждый пискель имеет только один цвет - к примеру самый простейший алгоритм преобразования изображения размером 10x10 в размер 10x11 может работать следующим образом - пиксели в певром столбце остаются своего цвета во втором столбце получают цвет как 1/11 певрого и 10/11 цвета второго столбца и тд На практике изображения имеют значительно более сложный формат и их преобразование происходит по особым алгоритмам - однако все равно приведенная выше проблема остается и хотя она решается различными способами но естественное искажение вносится по определению
Можете посмотреть готовую PHP-функцию которая делает масштабирование и квадратную обрезку изображений здесь http://www[dot]codenet[dot]ru/webmast/ph[dot][dot][dot]Image-Resize-GD/ - также можете посмотреть технику реальной интерполяции для масштабирования изображений http://ru[dot]wikipedia[dot]org/wiki/%D0[dot][dot][dot]1%86%D0%B8%D1%8F и применении фильтра нижних частот http://ru[dot]wikipedia[dot]org/wiki/%D0[dot][dot][dot]0%B8%D0%BD%D0%B3
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.