Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

вопрос по повороту Bitmap [D5, NT4]


Martyn ©   (2002-05-21 12:27:00) 

Привет всем!

подскажите, как повернуть изображение физически в файле на 90 градусов: т.е.

dest.width := source.height;
dest.height := source.width;
dest.pixelformat := source.pixelformat;
dest.pallete := source.palette;


MBo   (2002-05-23 17:30:00) [1]

>изображения на 90 градусов делается за 2-3 секунды...
Какого размера твои картинки?!?!?!?!?!?!?!?!?!?!
если программа не будет использоваться на Win9X, делай SetWorldTransform, а если будет, я код со scanline дам


Martyn   (2002-05-23 17:00:00) [2]

2Всех...

Облазил полИнета, в посиках чего-то подходящего..., кстати поворот по пикселям - слишком долго...

так вот, нашел Unit, который для моих задач подошел от и до, поворот изображения на 90 градусов делается за 2-3 секунды...

если кому надо, могу поделиться...

Игорь


KilkennyCat   (2002-05-22 14:49:00) [3]

Я пока только скачал GDI+, прочитал от корки до корки доку (в метро ехал) - она может покруче, чем стандартная. К сожалению, времени нет... :( но вращать она матрицами может.


Владимир Васильев   (2002-05-22 13:06:00) [4]

procedure Rotate90( Src: TBitmap32;RotateDir : TRotateDir);
Var
i,j : integer;
Temp : TBitmap32;
W,H : integer;
begin
Temp:=TBitmap32.Create;

try

Temp.SetSize(Src.Height,Src.Width);

W:=Src.Width;
H:=Src.Height;

for i:=0 to W-1 do
for j:=0 to H-1 do

case RotateDir of
rdCW : //


MBo   (2002-05-22 12:02:00) [5]

GDI+
а кто-нибудь уже пользовался? как впечатление?


KilkennyCat   (2002-05-22 10:58:00) [6]

Тогда прошу прощения, миррор я делал, но вроде как и вращал тоже... Хорошо, взамен другой совет: воспользоваться GDI+


MBo   (2002-05-22 08:01:00) [7]

StretchBlt не вертит на 90, только mirror можно сделать.
кстати, в NT-семействе можно использовать SetWorldTransform,
но в 9X поворот не поддерживается


KilkennyCat   (2002-05-22 06:45:00) [8]

Ну, начнем с того, что WinAPI - не единственное средство повышения скорости (да и не всегда). Можно и по-пикселам. Здесь недавно отвечали о вращении по пикселам. Ну а через Апи - StretchBlt


Martyn   (2002-05-21 12:29:00) [9]

... забыл добавить: используя WinAPI (скорость очень сильно лимитирует)


Наверх

Титульная страница Поиск, карта сайта Написать письмо