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

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

Проблема с Bitmap [Delphi, Windows]


ASilver ©   (2003-09-29 13:20:00) 

Почему bitblt с PBitamp размером 600x800 занимает времени больше 1 секунды. Как лечить.


ASilver   (2003-10-07 12:40:00) [1]

Ok. Всё работает нормально. Извиняюсь за глупый вопрос.


miek   (2003-10-01 22:10:00) [2]

А вот и он, больной зуб!

Bitmap.PixelFormat := pfCustom;

Смени на что-нибудь определенное. pf32bit, например.


ASilver   (2003-10-01 12:41:00) [3]

procedure TForm1.SPLPicture1Click(Sender: PObj);
var
 DC: HDC;
 Bitmap : PBitmap;
begin
Bitmap := NewBitmap(800,600);
Bitmap.PixelFormat := pfCustom;
DC := GetDC( 0 );
BitBlt(Bitmap.Canvas.Handle,0,0,800,600,DC,0,0,SRCCOPY );
....
Bitmap.Free;
end;


miek   (2003-09-30 20:20:00) [4]

Весь код в студию. Товарищ правильно говорит - должно все работать нормально.


SPeller   (2003-09-30 15:30:00) [5]

ЗЫ: В компонент предварительно был вставлен скриншот рабочего стола размером 800х600.


SPeller   (2003-09-30 15:28:00) [6]

Странно, у меня такой код:

procedure TForm1.SPLPicture1Click(Sender: PObj);
var DC: HDC;
begin
 DC := GetDC( 0 );
//  BitBlt( DC, 0, 0, 800, 600, SPLPicture1.Bitmap.Canvas.Handle, 0, 0, SRCCOPY );
 BitBlt( SPLPicture1.Bitmap.Canvas.Handle, 0, 0, 800, 600, DC, 0, 0, SRCCOPY );
end;

Работает мгновенно в обоих случаях. Может, у тебя формат битмапа не совпадает с тем, что на экране, и время тратится на преобразование?


ASilver   (2003-09-30 14:31:00) [7]

DC := GetDC(0);
bitblt(btm.canvas.handle,0,0,800,600,DC,0,0,SRCCOPY);


miek   (2003-09-29 19:58:00) [8]

Код в студию


SPeller   (2003-09-29 17:15:00) [9]


> bitblt с PBitamp размером 600x800 занимает времени
> больше 1 секунды

А это как?


Наверх

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