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

Вниз

Мастера, а щас применяют 15bpp BITMAP   Найти похожие ветки 

 
Igor__ ©   (2003-08-09 15:31) [0]

Вот написал код перевода с 16BPP в 15BPP. Ни одна программа не прочитала правильно картинку.
Может, я неправильно что-то делаю.

procedure TForm1.Button1Click(Sender: TObject);
var
f,f1:Cardinal;
fh:TBitmapFileHeader;
bi:TBitmapInfoHeader;
i,j:Cardinal;
a:word;
r,g,b:byte;
ost:cardinal;
begin
F:=FileOpen(Edit1.Text,FmOpenread);
f1:=Filecreate(Edit2.Text);
FileRead(f,fh,sizeOf(fh));
FileRead(f,bi,sizeOf(bi));

bi.biCompression:=0;

FileWrite(f1,fh,sizeOf(fh));
FileWrite(f1,bi,sizeOf(bi));

ost:=BytesPerScanLine(bi.biWidth,16,32)-bi.biWidth*3;


For i:=0 to bi.biHeight-1 do
begin
For j:=0 to bi.biWidth-1 do
begin
FileRead(f,a,2);
R:=(a and $F800) shr 11;
G:=(a and $7e0) shr 5;
B:=(a and $1f);
G:=32*g div 64;
a:=0;
a:=(R shl 10) or (G shl 5) or B;
FileWrite(f1,a,2);
end;
FileRead(f,a,ost);
( f)
Вот написал код перевода с 16BPP в 15BPP. Ни одна программа не прочитала правильно картинку.
Может, я неправильно что-то делаю.

procedure TForm1.Button1Click(Sender: TObject);
var
f,f1:Cardinal;
fh:TBitmapFileHeader;
bi:TBitmapInfoHeader;
i,j:Cardinal;
a:word;
r,g,b:byte;
ost:cardinal;
begin
F:=FileOpen(Edit1.Text,FmOpenread);
f1:=Filecreate(Edit2.Text);
FileRead(f,fh,sizeOf(fh));
FileRead(f,bi,sizeOf(bi));

bi.biCompression:=0;

FileWrite(f1,fh,sizeOf(fh));
FileWrite(f1,bi,sizeOf(bi));

ost:=BytesPerScanLine(bi.biWidth,16,32)-bi.biWidth*3;


For i:=0 to bi.biHeight-1 do
begin
For j:=0 to bi.biWidth-1 do
begin
FileRead(f,a,2);
R:=(a and $F800) shr 11;
G:=(a and $7e0) shr 5;
B:=(a and $1f);
G:=32*g div 64;
a:=0;
a:=(R shl 10) or (G shl 5) or B;
FileWrite(f1,a,2);
end;
FileRead(f,a,ost);
end;

FileClose(f);
FileClose(f1);
end;


 
Igor__ ©   (2003-08-09 19:20) [1]

16bpp = 5-6-5
15bpp = 5-5-5


 
Anatoly Podgoretsky ©   (2003-08-09 19:22) [2]

У тебя не наблюдается изменение TBitmapInfoHeader


 
Igor__ ©   (2003-08-09 19:26) [3]

bi.biCompression:=0;

BI_RGB=0;//5-5-5
BI_BitFields=3; //5-6-5


 
Igor__ ©   (2003-08-10 04:02) [4]

bi:TBitmapInfoHeader;
:))))



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

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

Наверх




Память: 0.47 MB
Время: 0.009 c
14-92194
Ketmar
2003-08-10 00:36
2003.08.28
по просьбе Анатолия Подгорецкого -- ветка о моём возвращении %-))


3-92061
Vmdeep2
2003-08-01 02:16
2003.08.28
LoadFromFile в ADO


3-91980
Ш-К
2003-08-01 12:37
2003.08.28
Преобразоватие типов.


6-92137
Александр из Минска
2003-06-07 21:14
2003.08.28
Пересылка файла


14-92231
ed_209
2003-08-09 14:12
2003.08.28
глюк со строками...