Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.021 c
14-1095076029
Sergey13
2004-09-13 15:47
2004.10.03
Президент совершил революцию в системе выборов


1-1095332052
l1gic
2004-09-16 14:54
2004.10.03
Настройка MaskEdit


4-1093109098
AlexV
2004-08-21 21:24
2004.10.03
Label, независимый от размера шрифта в настр-ах Windows ...


14-1094707224
kaZaNoVa
2004-09-09 09:20
2004.10.03
Потокобезопасность или как написать потокобезопасный код ?


6-1088755314
LEONardo
2004-07-02 12:01
2004.10.03
TclientSocket в приложении, не имеющей ни одной формы




   Наверх