Главная страница
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.48 MB
Время: 0.04 c
1-1095309628
avch
2004-09-16 08:40
2004.10.03
Работа с Excel через Variant


3-1094557571
Vilkkkka
2004-09-07 15:46
2004.10.03
OLTP и OLAP


1-1095596877
RoLeX2004
2004-09-19 16:27
2004.10.03
Прога неправильно понимает маску "~*.*" при поиске.


9-1083579189
OSokin
2004-05-03 14:13
2004.10.03
Максимально возможная игра


3-1094101624
46_55_41_44
2004-09-02 09:07
2004.10.03
Как можно узнать на какую запись в гриде наведена мышь?