Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.22;
Скачать: CL | DM;

Вниз

ScanLine жуткие тормаза   Найти похожие ветки 

 
Kirill.info   (2006-06-05 11:16) [0]

Привет всем, у меня при вызове ScanLine жуткие тормаза:

     bmp.Canvas.Handle:=GetDC(WinOb);
     mpt.Height := re.Bottom-re.Top;
     mpt.Width := re.Right-re.Left;
     mpt.Assign(bmp);
     mpt.Canvas.Draw(0, 0, bmp);

//      mpt.SaveToFile("1.bmp");
//      mpt.LoadFromFile("1.bmp");
     h := mpt.Height - 1;
     w := mpt.Width - 1;
     for y := ym to h do
       pl := mpt.ScanLine[y];

... ктонибудь знает как это лечиться?


 
Kirill.info   (2006-06-05 11:25) [1]

если гружу из файла то все летает...,  может быть это из-за того что нехвотает оперативки? 256 (winxp)


 
MBo ©   (2006-06-05 11:35) [2]

из-за того, что у тебя Bitmap не DIB, а DDB
сделай bitmap.handletype := bmDib

кроме того, Scanline вынеси за цикл по х


 
Kirill.info   (2006-06-05 11:42) [3]

Огромное спасибо!,
а зачем Scanline выносить в x, если он получает всю линейку по x?


 
MBo ©   (2006-06-05 11:57) [4]

>а зачем Scanline выносить в x, если он получает всю линейку по x?

Пардон, это я невнимательно посмотрел, у тебя нет цикла по x, а только по Y


 
Kirill.info   (2006-06-06 06:31) [5]

прям Черная полоса кокаята....
Почемуто у меня картинка когда я её читаю ScanLine получаеться в полосочку...?


 
antonn ©   (2006-06-06 09:55) [6]

Kirill.info   (06.06.06 6:31) [5]
потому что pixelformat нужно установить нужный?


 
Kirill.info   (2006-06-07 11:27) [7]

меняю PixelFormat уменя меняеться размер картинки,
как можно изменить битрейт?


 
MBo ©   (2006-06-07 12:31) [8]

>как можно изменить битрейт?
Какой еще битрейт?

У массива, с помошью которого идет обращение к Scanline, тип элементов должен соответствовать PixelFormat - например, для pf24bit - трехбайтные элементы


 
Kirill.info   (2006-06-07 14:25) [9]

Спасибо уже разобрался!
с GetDC(WinOb) у мея неполучаеться снять окно если он закрыто другим, как можно получить картнику окно если оно закрыто сверху другим?


 
MBo ©   (2006-06-07 14:42) [10]

>как можно получить картнику окно если оно закрыто сверху другим?
в общем случае - никак

Непростой путь без гарантии - через WM_PRINT, WM_PRINTCLIENT
http://www.fengyuan.com/article/wmprint.html


 
Kirill.info   (2006-06-07 14:46) [11]

Спасибо


 
miek ©   (2006-06-08 08:06) [12]

>как можно получить картнику окно если оно закрыто сверху другим?
Простой путь с гарантией - послать ему WM_PAINT.



Страницы: 1 вся ветка

Текущий архив: 2006.10.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.064 c
3-1155899628
Bless
2006-08-18 15:13
2006.10.22
Коды ошибок провайдера.


2-1159856930
Officeman
2006-10-03 10:28
2006.10.22
у кого Delphi-7, помогите. fsMDIForm сплошной глюк.


15-1159535957
sergey888
2006-09-29 17:19
2006.10.22
Микрософт вплотную занялась играми


2-1159884569
AlexeyT
2006-10-03 18:09
2006.10.22
"Полноэкранный режим" без установки BorderStyle


2-1160276062
m-kirill-2003
2006-10-08 06:54
2006.10.22
Кнопка на новую форму.