Вниз
Скачать: 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.042 c
14-1093716915
ИМХО
2004-08-28 22:15
2004.10.03
ЛЧ 2004/05


1-1095342962
stud
2004-09-16 17:56
2004.10.03
необходимо выделить фрагмент изображения


1-1095234959
ser
2004-09-15 11:55
2004.10.03
Конвертер проектов Delphi в Borland - dpk2bpk


6-1088974260
Квэнди
2004-07-05 00:51
2004.10.03
Копирование файлов


14-1094447269
hawkins
2004-09-06 09:07
2004.10.03
как поставить защиту на свою прог-му?




   Наверх