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

Вниз

pf32bit   Найти похожие ветки 

 
Pa5ha   (2004-07-02 23:20) [0]

Как установить на tBitmap отличный от pfDefault формат пикселя?


 
Огромное Кулясищще ©   (2004-07-02 23:26) [1]

TBitmap.PixelFormat := pf32bit;

Слушай, а как ты узнал про pf32bit и не узнал про PixelFormat?

Кстати, при создании битмапа типа TBitmap сначала указывай PixelFormat, а потом выставляй размеры.


 
Pa5ha   (2004-07-03 01:19) [2]

Размер по барабану када присваивать. А вот при любой попытке присвоить другой формат появляется ашипка. А когда его надо присваивать, до create или после? Что то забыл...


 
Огромное Кулясищще ©   (2004-07-03 13:57) [3]

до create ничто никогда не присваивается.


 
Pa5ha   (2004-07-04 14:05) [4]

Упс, точно, все работает. Что то я ступил...
Ладно, хорошо, а как тогда с цветами работать? Там палитра однобайтовая становиться или нет?


 
Огромное Кулясищще ©   (2004-07-04 17:23) [5]

Какая палитра? Через TColor работай или TRGBQuad.


 
Pa5ha   (2004-07-04 18:25) [6]

Короче, докладываю по форме...
32 бита позволяют закодировать (256*256*256=16777216) много цветов. А 8 бит позоляют закодировать только 256 цветов. При присвоении изображения с 8 битами изображению с 32 битами получаются только оттенки красного. Собственно говоря, мне это и не нравиться.


 
Огромное Кулясищще ©   (2004-07-04 19:22) [7]

Вот код, выполняющий задачу.


unit mainUnit;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls;

type
 TmainForm = class(TForm)
   btnConvert: TButton;
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
   procedure btnConvertClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 mainForm: TmainForm;

var
 Das8bit: TBitmap;
 Das32bit: TBitmap;

implementation

{$R *.DFM}

procedure TmainForm.FormCreate(Sender: TObject);
begin
 Das8bit := TBitmap.Create;
 If not FileExists("bit8.bmp") then
  begin
    ShowMessage("Изображение bit8.bmp отсутствует!");
    Application.Terminate;
  end;
 Das8bit.LoadFromFile("bit8.bmp");
 If Das8bit.PixelFormat <> pf8bit then
  begin
    ShowMessage("Неверный формат! Нужен 8-битный!");
    Application.Terminate;
  end;

 Das32bit := TBitmap.Create;
 Das32bit.PixelFormat := pf32bit;
end;

procedure TmainForm.FormDestroy(Sender: TObject);
begin
 Das32bit.Free;
 Das8bit.Free;
end;

procedure TmainForm.btnConvertClick(Sender: TObject);
begin
 Das32bit.Assign(Das8bit);
 Canvas.Draw(0, 0, Das32bit);
end;

end.


 
Pa5ha   (2004-07-04 20:28) [8]

Опа, спасибо. А то до Draw я сам не допер...


 
Огромное Кулясищще ©   (2004-07-04 20:40) [9]

Главное, это:
Das32bit.Assign(Das8bit);

Delphi из меньшего в большее конвертирует автоматом.



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

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

Наверх




Память: 0.46 MB
Время: 0.037 c
1-1095239652
Чайник
2004-09-15 13:14
2004.10.03
Случайный цвет


4-1093500352
bss
2004-08-26 10:05
2004.10.03
блокировка комбинаций системных клавиш Windows


3-1094131004
Донской
2004-09-02 17:16
2004.10.03
Триггер счетчика


8-1088608890
LAnd
2004-06-30 19:21
2004.10.03
Наложение текстур OpenGL


11-1081152232
Неуловимый Джо
2004-04-05 12:03
2004.10.03
OnMouseLeave и PControl





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