| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > Как средствами GDI уменьшить картинку |
| Автор: artful 7.4.2009, 14:42 |
| Скажите можно ли средствами GDI качественно и причем, что очень важно, быстро уменьшить размер картинки. Или может подскажите другой способ как можно максимальноо быстро и качественно сделать уменьшение размера. З.Ы. Просьба не посылать в поиск... 2 день уже копаю... и поиском пользоваться умею.. как в GDI уменьшить картинку не нашел... а насчет обычного уменьшения я просто хочу посоветоваться что быстрее будет работать... |
| Автор: Alexeis 7.4.2009, 14:47 |
| На GDI качественно не выйдет. GDI+ позволяет использовать бикубическую интерполяцию. См. примеры тут http://www.progdigy.com/files/gdiplus.zip |
| Автор: artful 7.4.2009, 16:44 |
| извеняюсь... а какой именно пример показывает ее работу? и еще ... подскажите пожалуйсто где взять заголовозные файлы для CodeGear Rad Studio 2009 Delphi |
| Автор: AntonN 7.4.2009, 16:59 |
| На GDI качественно выйдет, вот пример с ресайзом с применением филтров Митчела/Белла/бикубический/ланкоза и тп http://desksoft.ru/index.php?downloads=attachments&id=158 |
| Автор: artful 7.4.2009, 17:10 |
| я так понял что пример это Creating Thumbnail Images ??? я прав? |
| Автор: AntonN 7.4.2009, 22:53 |
| Alexeis, там используется GDI и только, разве не так? Ну и как бы вообще: используется Tbitmap, доступ к пикселям через scanline/canvas.pixels[] - это GDI. Я с ним уже 5 лет ЗЫ ну и если хочется совсем не своими руками, то есть SetStretchBltMode(Canvas.Handle, STRETCH_HALFTONE); для StretchBlt() |
| Автор: Alexeis 7.4.2009, 23:07 |
| AntonN, с таким успехом можно сказать что и GDI+ и OpenGL это GDI, потому что они используют GDI контекст для отрисовки. А еще можно сказать что OpenGL это DirectDraw. GDI не предоставляет функций для сжатия и растяжения картинок кроме метода ближайшего соседа. |
| Автор: AntonN 7.4.2009, 23:32 | ||
Использование Tbitmap с доступом к пикселям scanline/pixels - это уже GDI. Спорить будем?
в общем не вижу смысла больше отнекиваться и изворачиваться, если только побуквоедствовать... |