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

Вниз

Реальное колличество цветов в палитре TBitmap   Найти похожие ветки 

 
texHelp ©   (2003-03-06 23:48) [0]

Как получить реальное колличество цветов в палитре TBitmap.


 
xception   (2003-03-07 05:01) [1]

BitmapInfoHeader.biClrUsed
BitmapInfoHeader.biBitCount (case 1,4,8,24) = 2,16,256,2^24



 
Poirot ©   (2003-03-07 07:10) [2]

А ты посмотри формат BMP. Там гдето в конце заголовка указано количество, если есть (для 24 бита нет), а потом идёт Сама палитра.
Ну короче
tagBITMAPINFOHEADER в Windows


 
texHelp ©   (2003-03-07 10:38) [3]

Вы пишите все правильно, но как прочитать BitmapInfoHeader.biClrUsed из TBitmapa.


 
xception   (2003-03-07 16:49) [4]

Мда.. я делал так.

function GetBIHeaderOffset(biBitCount: Word; biClrUsed: Word = 0): Cardinal;
var ClrFactor: Word;
begin
if biClrUsed = 0
then
case biBitCount of
1 :ClrFactor := 2;
4 :ClrFactor := 16;
8 :ClrFactor := 256;
else
ClrFactor := 0;
end
else
ClrFactor := biClrUsed;
Result := ClrFactor*SizeOf(TRGBQuad);
end;

procedure GetBitmapHandle();
var BitmapData, Bits: Pointer;
BMP: HBITMAP;
begin
Bits := Pointer(Cardinal(MemoryData.Memory) + SizeOf(BITMAPFILEHEADER));
with PBITMAPINFOHEADER(Bits)^ do
begin
BitmapData:= Pointer(Cardinal(Bits)+biSize+GetBIHeaderOffset(biBitCount,biClrUsed));
BMP := CreateDIBitmap(FDisplay,PBitmapInfoHeader(Bits)^,CBM_INIT,BitmapData,PBitmapInfo(Bits)^,DIB_RGB_COLORS);
end;
end;

При этом MemoryData экземпляр TMemoryStream, в который загружаем битмап из файла.



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

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

Наверх




Память: 0.47 MB
Время: 0.014 c
1-64194
Delphi Mania
2003-03-08 00:26
2003.03.20
Как вызвать окно


4-64445
NewCipher
2003-01-26 15:19
2003.03.20
Как перевести в C?


3-63981
Ihtiandr
2003-02-28 10:50
2003.03.20
Edit


3-64025
Kostya_iz_angren
2003-02-27 13:39
2003.03.20
Как подсчитать количество месяцев между Дата1 и Дата2


14-64343
ZeroDivide
2003-03-04 16:22
2003.03.20
Да здравствуют отечественные военные кулеры!