Форум: "Media";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];
ВнизКак работать с 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 вся ветка
Форум: "Media";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.014 c