Вверх ↑
Разработчик
Ответов: 26151
Рейтинг: 2127
#1: 2008-02-17 15:12:01 ЛС | профиль | цитата
Galkov писал(а):
Глупо, и по-детски
Ну вот, сразу "и по-детски".

Билинейное саживание самое простое -- делается две копии рисунка, но одна смещается по отношению к другой на один пиксель по диагонали, заполнение отсутствующих пикселей происхоит цветом фона (или глубиной альфа-канала). При расчете усредненного цвета пикселя целевой картинки испоьзуется матрица обоих картинок источников, размером 2х2, нечетные -- из первой картинки, четные -- из второй. В квадральной тоже самое, но уже нужно четыре картинки, смещенные по трем диагональным улам, матрица, в данном случе, буде уже 4х4.

------------ Дoбавленo:


Вот последняя версия. Несколько тюнингованная, за счет применения других типов данных и измененного битового копирования; рисунок при кратном повороте (0, 90, 180, 270,360) -- 32-х битный, при повороте -- 24-х битный. Результат -- 39 сек [72 мсек]. Как еще ускорить, и возможно ли это вообще, я уже не знаю.
карма: 22

0
файлы: 1image_rotate_1_25.zip [14.1KB] [219]