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

Вниз

Странный косяк с палитрой у TBitmap   Найти похожие ветки 

 
TheBug ©   (2007-06-18 13:32) [0]

Необходимо отрисовывать черно-белые изображения. Для этого необходимо сгенирировать палитру. А потом для тестироавния рисую градиентную картинку и вывожу в Image (imgMap). Код такой.

type
 LogPal = record
   lpal : TLogPalette;
   dummy: Array[0..255] of TPaletteEntry;
 end;

procedure TMainForm.btnTestClick(Sender: TObject);
var
 palGrey: LogPal;
 P: PByteArray;
 i, j: integer;
 b: byte;
begin
 imgMap.Picture.Bitmap.PixelFormat := pf8bit;
 imgMap.Picture.Bitmap.Width := 256;
 imgMap.Picture.Bitmap.Height := 256;

 palGrey.lPal.palVersion := $300;
 palGrey.lPal.palNumEntries := 256;
 for b := 0 to 255 do
 begin
   palGrey.dummy[b].peRed := b;
   palGrey.dummy[b].peGreen := b;
   palGrey.dummy[b].peBlue := b;
   palGrey.dummy[b].peFlags := 0;
 end;

 imgMap.Picture.Bitmap.Palette := CreatePalette(palGrey.lpal);

 for i := 0 to imgMap.Picture.Bitmap.Height - 1 do
 begin
   P := imgMap.Picture.Bitmap.ScanLine[i];
   for j := 0 to imgMap.Picture.Bitmap.Width - 1 do
   begin
     P[j] := i;
   end;
 end;

 imgMap.Invalidate;
end;


Так вот. В нулевой строке, цвет не черный, как ожидалось, а какой-то зеленый. В чем тут проблема?


 
MBo ©   (2007-06-18 14:01) [1]

SetDIBColorTable попробуй


 
TheBug ©   (2007-06-18 14:49) [2]

Проблема была решена перенос локальных переменных в глобальные.
Но я так и не понял, почему так заработало.


 
MBo ©   (2007-06-18 15:07) [3]

>Проблема была решена перенос локальных переменных в глобальные.
Странно это.

Кстати,  LogPal у тебя некорректно описана - нулевой элемент таблицы уже есть в TLogPalette


 
TheBug ©   (2007-06-18 16:17) [4]

2 MBo
Код из хелпа...


 
MBo ©   (2007-06-18 16:38) [5]

заметь, что в хелпе используется массив, начиная с palPalEntry, а не с dummy[0]

GetSystemPaletteEntries(tempCanvas.Handle,0,256,SysPal.lpal.palPalEntry);


 
TheBug ©   (2007-06-18 21:08) [6]

2MBo
Косяк, ты прав...



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

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

Наверх





Память: 0.46 MB
Время: 0.007 c
2-1211476711
assassin8899
2008-05-22 21:18
2008.06.15
SQL


2-1211523127
Первокласник Вася
2008-05-23 10:12
2008.06.15
Преобразование времени


2-1211399141
dumnsar
2008-05-21 23:45
2008.06.15
Драг дроп


2-1211372996
NieL
2008-05-21 16:29
2008.06.15
Переменные окружения


2-1211275074
RR Bom
2008-05-20 13:17
2008.06.15
Свойства DBGrid1





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский