Страница: 1 |
Страница: 1 |
Вопрос: Растянуть изображение
Добавлено: 25.04.06 20:35
Автор вопроса: LeX | Web-сайт:
Как можно растянуть изображение, помещенное в image или picturebox (куда именно - не имеет значения) без потери качества. Stretch - растягивает с очень большой потерей качества...:( Как можно хотя бы уменьшить его?
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 25.04.06 22:24
на пхп хорошая дллка есть, х.з. мож можно её и к ВБ прикрутить, я про php_gd2.dll Она очень аккуратно умеет растягивать, сжимать, менять качество jpg итп...
Номер ответа: 2
Автор ответа:
Barsik
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #2
Добавлено: 26.04.06 14:49
а если в сторону API поглядеть?
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 26.04.06 16:04
у мя нема щас не проги чтобы посмотреть что она экспортирует, и нема времени чтобы разобрать что она возвращает.
Номер ответа: 4
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #4
Добавлено: 26.04.06 18:57
Растянуть изображение без потери качества возможно только для векторных изображений. С растром тебе даже фотошоп не поможет. Для проверки попробуй на нем сделать из иконки обои рабочего стола. Число фильтров не ограничено
Есть хитрые алгоритмы сглаживания, но потеря качества в этом случае неминуема.
Номер ответа: 5
Автор ответа:
someone
Вопросов: 215
Ответов: 1596
Web-сайт:
Профиль | | #5
Добавлено: 26.04.06 19:22
Конечно, обойтись без потерь в графике, имхо, невозможно. Как вывод:
1) создай более высококачественное изображение
2) или попробуй увеличить изображение в продвинутом графическом редакторе.
Номер ответа: 6
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #6
Добавлено: 27.04.06 01:18
GD использует таблицу PHP-функций, а не просто импорт, и сама активно использует функции ядра PHP, т.е. другой DLL для приема/обработки/возвращения данных. Так что что-то написать можно, разве что, отталкиваясь от исходников, но никак от скомпилированной DLL.
Номер ответа: 7
Автор ответа:
LeX
ICQ: 301424893
Вопросов: 28
Ответов: 277
Web-сайт:
Профиль | | #7
Добавлено: 27.04.06 15:55
Мне необязательно совсем без потери... Хотя бы уменьшить ее до минимума...
Номер ответа: 8
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #8
Добавлено: 04.05.06 14:17
Вообще-то, если говорить о процессе УВЕЛИЧЕНИЯ размеров рисунка, то потерь, вообще говоря, нет. Наоборот, исходный рисунок приобретает новую дополнительную информацию. То есть исходный рисунок можно восстановить по растянутому. (это, конечно, зависит от алгоритма, но по тому, что производит Image это можно всегда)
Однако качество большого рисунка, конечно, получается фиговое.
Чтобы большой рисунок имел хорошее качество, надо иметь оригинал по крайней мере того же размера.
Совсем другая история с векторной графикой. Там от увеличения размеров действительно рисунок становится лучше.
Так что чтобы рисунок в Image растянулся идеально, он должен быть чисто векторный. Для этого надо просто создать метафайл (wmf) и засунуть его в свойство Picture.
На счет растяжения растровой графики с билинейной интерполяцией - могу поделиться кодом.
К тому же, Windows можно заставить это сделать (API: StretchBlt после применения SetStretchBltMode). Только результат, может быть, будет зависеть от видеокарточки и от драйвера.