![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
PixelFormat = pfDevice - как перевести в нормальный вид? [D7]
PixelFormat © (2006-11-27 01:39:00)сабж.
MBo (2006-11-29 07:17:00) [1]>Мне надо чтобы pfDevice переводилось в нормальные значения. В pf24bit pf32bit и тому подобное
В [4] есть ответ
RASkov (2006-11-29 03:58:00) [2]> [13] PixelFormat (29.11.06 03:06)
Перед сохранением картинки явно указать PixelFormat ? [12]
А по другому ты его и не переведешь так как он "отдельный диапазон".
Посмотри [11] и оператор case т.е. если бы был pf32bit то он бы и был бы:) Во загнул.
PixelFormat (2006-11-29 03:06:00) [3]Мне надо чтобы pfDevice переводилось в нормальные значения. В pf24bit pf32bit и тому подобное.
pfDevice появляется после сохранения и загрузки картинки pf32bit из потока.
RASkov (2006-11-28 14:19:00) [4]> [10] MBo © (28.11.06 13:42)
> typinfo
А так, кстати, да
b.Height := 10;
b.PixelFormat:=TPixelFormat(0..8);
b.SaveToFile('a.bmp');
пробовал разные... выводит все кроме pfDevice
:)
Но оно и верно, скорее у меня имются "нестандартные" картинки
RASkov (2006-11-28 14:11:00) [5]> [10] MBo © (28.11.06 13:42)
Я вот так проверил
procedure TForm1.Button2Click(Sender: TObject);
var Bmp: TBitMap;
begin
Bmp:=TBitMap.Create;
if OP.Execute then Bmp.LoadFromFile(OP.FileName);
case Bmp.PixelFormat of
pfDevice: ShowMessage('The bitmap is stored as a device-dependent bitmap.');
pf1bit : ShowMessage('The bitmap is a device-independent bitmap with one bit per pixel (black and white palette)');
pf4bit : ShowMessage('The bitmap is a device-independent bitmap that uses a 16-color palette.');
pf8bit : ShowMessage('The bitmap is a device-independent bitmap that uses a 256color palette.');
pf15bit : ShowMessage('The bitmap is a device-independent true-color bitmap that uses 15 bits per pixel (RGB compression).');
pf16bit : ShowMessage('The bitmap is a device-independent true-color bitmap that uses 16 bits per pixel (bitfield compression).');
pf24bit : ShowMessage('The bitmap is a device-independent true-color bitmap that uses 24 bits per pixel.');
pf32bit : ShowMessage('The bitmap is a device-independent true-color bitmap that uses 32 bits per pixel (RGB compression).');
pfCustom: ShowMessage('The bitmap uses some other format. TBitmap does not support pfCustom.');
end;
Bmp.Free;
end;
и выбирал разные картинки(файлы *.bmp), соответственно выдавались разные мессаги в том числе и
pfDevice: ShowMessage('The bitmap is stored as a device-dependent bitmap.');
MBo (2006-11-28 13:42:00) [6]>... сработало
после загрузки из файла или после создания битмапа?
uses typinfo;
var
b: TBitmap;
begin
b := TBitmap.Create;
b.Width := 10;
b.Height := 10;
b.SaveToFile('a.bmp');
Memo1.Lines.Add(GetEnumName(TypeInfo(TPixelFormat), Integer(b.PixelFormat)));
b.LoadFromFile('a.bmp');
Memo1.Lines.Add(GetEnumName(TypeInfo(TPixelFormat), Integer(b.PixelFormat)));
b.Free;
выводит
pfDevice
pf32bit
RASkov (2006-11-28 13:18:00) [7]> [7] MBo © (28.11.06 08:47)
Специально проверил... сработало. Картинка формата Bmp глубина цвета-32
pfDevice: ShowMessage('The bitmap is stored as a device-dependent bitmap.');
и на других.. на разных по разному.
ancara (2006-11-28 11:26:00) [8]2 PixelFormat
Так тебе надо знать сколько бит в формате пикселя девайса чтоли?
юзай GetPixelFormat/DescribePixelFormat
MBo (2006-11-28 08:47:00) [9]>А по чему бы и нет?
AFAIK, при загрузке из файла DIB получится, а не DDB
RASkov (2006-11-28 08:38:00) [10]> [4] MBo © (28.11.06 08:30)
А по чему бы и нет?
RASkov (2006-11-28 08:36:00) [11]> [4] MBo © (28.11.06 08:30)
Не знаю, я из хелпа целиком скопировал, подправил, сам не пробовал...
MBo (2006-11-28 08:30:00) [12]>PixelFormat
Тебе для чего? может подойти
Bitmap.HandleType := bmDIB
>RASkov
>Bmp.LoadFromFile('name.bmp');
>case Bmp.PixelFormat of
>pfDevice: ShowMessage('The bitmap is stored as a device-dependent bitmap.');
Считаешь, что первая ветвь case может выполниться?
RASkov (2006-11-28 08:03:00) [13]
Bmp:=TBitMap.Create;
Bmp.LoadFromFile('name.bmp');
case Bmp.PixelFormat of
pfDevice: ShowMessage('The bitmap is stored as a device-dependent bitmap.');
pf1bit : ShowMessage('The bitmap is a device-independent bitmap with one bit per pixel (black and white palette)');
pf4bit : ShowMessage('The bitmap is a device-independent bitmap that uses a 16-color palette.');
pf8bit : ShowMessage('The bitmap is a device-independent bitmap that uses a 256color palette.');
pf15bit : ShowMessage('The bitmap is a device-independent true-color bitmap that uses 15 bits per pixel (RGB compression).');
pf16bit : ShowMessage('The bitmap is a device-independent true-color bitmap that uses 16 bits per pixel (bitfield compression).');
pf24bit : ShowMessage('The bitmap is a device-independent true-color bitmap that uses 24 bits per pixel.');
pf32bit : ShowMessage('The bitmap is a device-independent true-color bitmap that uses 32 bits per pixel (RGB compression).');
pfCustom: ShowMessage('The bitmap uses some other format. TBitmap does not support pfCustom.');
end;
PixelFormat (2006-11-28 05:47:00) [14]Бит сколько?
DrPass (2006-11-27 01:56:00) [15]Это он и есть. Что тебе не нравится?