Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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]

Это он и есть. Что тебе не нравится?


Наверх

Титульная страница Поиск, карта сайта Написать письмо