| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Изменение Размеров Картинки |
| Автор: rubenhak 3.5.2004, 10:56 |
| Люди кто поможет написать прогу которая изменит размеры картинки. Точнее - у меня есть Bitmap [NxN] нужно уменьшить на K%-ов . Реализация может быть на Delphi , Java , .NET все равно. Я немножко покопался и узнал что есть пары алгоритмов bilinear interpolation, Catmull-Rom BSpline interpolation и.т.д но который выбрать и что он из себя представляет не имею понятия. |
| Автор: Guest 3.5.2004, 12:06 |
| A почему не подходит метод Graphics::DrawImage из GDI+ (FCL)? |
| Автор: Kurt 3.5.2004, 15:43 | ||
| Полностью согласен с уважаемым Guest. Воспользуйся DrawImage() - у него более 30 перегруженных вариантов, но тебе в принципе нужен такой: DrawImage(Image picture, Rectangle dest, Rectangle source, GraphicsUnit myUnit), где picture - твоя картинка, dest - прямоугольник, КУДА выводится картинка, source - прямоугольник, ОТКУДА выводится картинка (т.е. прямоугольник из твоей картинки - обычно пригождается, когда надо увеличить некоторый кусок картинки..). Теперь смотри. Действует правило - если прямоугольник, КУДА выводим, не совпадает с прямоугольником, ОТКУДА выводим, картинка АВТОМАТИЧЕСКИ изменяется (увеличивается/уменьшается), чтобы точно вписаться в dest. Т.е. что бы увеличить картинку, нам надо увеличить dest, чтобы уменьшить - уменьшить его же. Причем, как ты понимаешь, насколько увеличишь dest - настолько и картинку. Короче, я тебе набросал простенький пример. Возьми небольшую картинку где-то 100х100 пикселей. Если кликнешь на форме левой кнопкой - изображение увеличится, правой - уменьшится. Тока извиняй, я для понятности не стал позиционировать картинку по центру при каждом изменении размеров - но эт мелочи.. Итак, вот код (готов к компиляции):
|
| Автор: Хоббит 10.5.2006, 22:41 |
| ... а если необходимо изменить размер картинки (пропорционально уменьшить) и хранить опять его в Image ??? |
| Автор: Balu 11.5.2006, 10:54 | ||
Вот из моего проекта:
|
| Автор: Хоббит 11.5.2006, 11:09 |
| ндя ... спасибо .. не подумал немного |
| Автор: useless 19.5.2006, 06:27 |
| Люди, вы паритесь. Используйте метод GetThumbnailImage из класса Image. Класс Bitmap - производный от Image. |
| Автор: Timus 30.3.2007, 17:01 | ||
Всё конечно хорошо. Но
Откуда Copy ( ... ); ? |