Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];

Вниз

Быстрый вывод изображения   Найти похожие ветки 

 
Andry   (2003-01-01 15:22) [0]

Народ!!! Поскажите, есть ли какой нибудь быстрый вывод изображения (рисование Bitmap на Canvas), быстрее чем Draw и CopyRect? Спасибо.


 
Ricks   (2003-01-01 17:07) [1]

BitBlt.
На здоровье :-)


 
Mihey   (2003-01-01 20:58) [2]

Описание функции BitBlt:

function BitBlt(DestDC: HDC; X, Y, Width, Height: Integer; SrcDC: HDC; XSrc, YSrc: Integer; Rop: Longint): Bool;

DestDC

Контекст устpойства, пpинимающего каpту бит. Имеется ввиду контекст (handle) канвы (canvas), на которую копируется изображение. Например, если изображение выводится на форму, то указывается контекст канвы формы, а именно: Form.Canvas.Handle. Для изображений TBitMap аналогично: BitMap.Canvas.Handle, но никак не BitMap.Handle.

X, Y

Координаты верхнего левого угла прямоугольной области, в которую выводится изображение. Проще говоря, координаты изображения.

Width, Height

Ширина и высота прямоугольной области, в которую выводится изображение. Если хотите вывести изображение целиком, то указывайте его настоящие размеры (постоянные или определённые по свойствам Width и Height). Вообще, X, Y, Width, Height вместе похожи на структуру TRect, которая используется в определении той же области вывода изображения в функции Draw объекта TCanvas.

SrcDC

Контекст устpойства, из котоpого копиpуется каpта бит, или нуль для pастpовой опеpации только на DestDC. Здесь, аналогично DestDC, указывается Handle объекта TCanvas изображения, которое будет скопировано на (именно "на", а не "в", т.к. речь идёт о копировании по битам) DestDC. В то же время, вы можете указать в этом параметре нуль, и на DestDC в зависимости от растровой операции (см. ниже) выведется прямоугольная область указанных в параметрах Width и Height размеров.

XSrc, YSrc

Веpхний левый угол SrcDC. Поясняю: прямоугольник размера Width и Height с координатами XSrc и YSrc будет копироваться из SrcDC в DestDC, причём в прямоугольник тех же размеров с координатами X и Y. Значит, если вы хотите просто вывести изображение, то указывайте здесь нули (XSrc = 0 и YSrc = 0). Если у вас большое изображение, и на на DestDC вы хотите вывести только его часть, то воспользуйтесь свойствами XSrc, YScr и Width, Height, и определите, какую именно. Если SrcDC = 0, то и XSrc = 0, YSrc = 0.

Rop

Одна из констант теpнаpных pастpовых опеpаций: Blackness, DSTInvert, MergeCopy, MergePaint, NotSrcCopy, NotSrcErase, PatCopy, PatInvert, PatPaint, SrcAnd, SrcCopy, SrcErase, SrcInvert, SrcPaint, Whiteness. Этот параметр отвечает за то, как SrcDC будет спроецировано DestDC. SrcCopy выполняет пpостое копиpование из источника в назначение.


 
Mihey   (2003-01-01 21:01) [3]

Ну а ещё можно попробовать библиотеки FastLib и другие, использующие DIB-изображения, или же использовать DirectX или OpenGL, лучше всего без посредников.


 
Andry   (2003-01-02 15:50) [4]

Огромное спасибо, очень помогли...



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

Форум: "Media";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.101 c
8-19708
iNew
2002-12-18 10:30
2003.04.07
Как проиграть wav файл через динамик?


3-19471
Staraya
2003-03-18 12:18
2003.04.07
Как сделать DBNavigator активным


4-19934
Yttrium
2003-02-06 01:38
2003.04.07
Перетаскиваю из экзешника форму(модальный диалог) в дэлэлэ.


1-19641
DriveSoft
2003-03-25 16:18
2003.04.07
TreeView - Как получить путь к открытой папке?


3-19418
Дервиш
2003-03-18 08:16
2003.04.07
Запрос из таблиц, полученных другими TQuery





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский