Учебник, доклад на тему технологическое оборудование пищевой промышленности.
C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Растяжка изображений
Антон
Отправлено: 18.05.2004, 22:45


Не зарегистрирован







Подскажите пожалуйста как можно растянуть/сжать bitmap.
exp
Отправлено: 18.05.2004, 23:08


Мастер участка

Группа: Участник
Сообщений: 304



Привет.
Начнем без предисловий.
Чтоб сжать (рстянуть) картинку нужно выкинуть (размножить) некоторые пиксели. Как?
Пусть ширина (или высота) до растяжения W1 а после — W2. (в пикселях)
Пусть i  — индекс из интелвала [0; W2] — т.е. пробегает по всей ширине картинки. Нужно определить цвет i — того пикселя растянутой картинки.
Нужный нам цвет содержит некоторый j-тый пиксель нерастянутой картинки. Какой? А вот такой: i*W1/W2 (думаю, понятно почему).
Итак окончательно:
Пробегаешь по ширине индексом i. Цвет для этого пикселя берешь из "старой" картинки (изменения размера) из пикселя с номером j=i*W1/W2.
В случае растяжения (сжатия) одновременно по 2 координатам используй идля второй координаты формулу, аналогичную полученной.

Вернуться в Вопросы программирования в C++Builder