Вниз
Скачать: CL | DM;

Как работать с pf8bit без ScanLine?   Найти похожие ветки 

← →
PaulB ©   (2002-03-07 01:54) [0]

Задача:
Имеется Bmp:TBitmap;
Bmp.PixelFormat:=pf8bit;
Я задаю свою палитру (хотя что задаёшь, что не задаёшь - результат один)

При попытке что-либо нарисовать средствами Canvas (скажем,
FillRect, LineTo и т.д.) элементы рисуются так, как будто
установлен формат pf4bit, а именно, каждая компонента
цвета (TColor) - R,G и B как будто делится пополам, т.е.
от 00 до 7F рисуется как чёрный цвет
от 80 до FF рисуется как полностью включённый (FF) красный,
зелёный или синий цвета соответственно.
То есть, я не могу задать, скажем, серый цвет, несмотря на то,
что в палитру я такой цвет добавил - получается либо чёрный,
либо белый. Аналогично с любыми другими полутонами.

Можно, конечно, работать через ScanLine, но скажите пожалуйста,
как мне тогда сделать то, что делает, например, метод
TCanvas.LineTo (в произвольном направлении) или Ellipse без
потери производительности?


← →
MBo ©   (2002-03-07 06:45) [1]

если у тебя несистемная палитра, для рисования стоит использовать только цвета из нее.
GetPaletteEntries
GetDIBColorTable
Если ты сам ее задавал, то у тебя уже есть таблица "правильных" цветов


для альтернативного рисования - алгоритмы Брезенхема



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.008 c
6-47653
Lizard
2002-05-02 22:12
2002.07.15
Как обойти ошибку ?


1-47537
Gamar
2002-06-27 11:25
2002.07.15
Как определить существует ли папка


14-47741
MaximatorVeter
2002-05-22 10:45
2002.07.15
BrainStorm!


1-47398
Andres
2002-07-02 15:52
2002.07.15
Перетаскивание элементов управления c рамкой контура


4-47881
Eugene_Jek_Efimochkin
2002-05-10 23:31
2002.07.15
активировать предыдущий контрол в системе, послать ему клавиши




   Наверх