![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
pf32bit [D7]
Pa5ha © (2004-07-02 23:20:00)Как установить на tBitmap отличный от pfDefault формат пикселя?
Огромное Кулясищще (2004-07-04 20:40:00) [1]Главное, это:
Das32bit.Assign(Das8bit);
Delphi из меньшего в большее конвертирует автоматом.
Pa5ha (2004-07-04 20:28:00) [2]Опа, спасибо. А то до Draw я сам не допер...
Огромное Кулясищще (2004-07-04 19:22:00) [3]Вот код, выполняющий задачу.
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 18:25:00) [4]Короче, докладываю по форме...
32 бита позволяют закодировать (256*256*256=16777216) много цветов. А 8 бит позоляют закодировать только 256 цветов. При присвоении изображения с 8 битами изображению с 32 битами получаются только оттенки красного. Собственно говоря, мне это и не нравиться.
Огромное Кулясищще (2004-07-04 17:23:00) [5]Какая палитра? Через TColor работай или TRGBQuad.
Pa5ha (2004-07-04 14:05:00) [6]Упс, точно, все работает. Что то я ступил...
Ладно, хорошо, а как тогда с цветами работать? Там палитра однобайтовая становиться или нет?
Огромное Кулясищще (2004-07-03 13:57:00) [7]до create ничто никогда не присваивается.
Pa5ha (2004-07-03 01:19:00) [8]Размер по барабану када присваивать. А вот при любой попытке присвоить другой формат появляется ашипка. А когда его надо присваивать, до create или после? Что то забыл...
Огромное Кулясищще (2004-07-02 23:26:00) [9]TBitmap.PixelFormat := pf32bit;
Слушай, а как ты узнал про pf32bit и не узнал про PixelFormat?
Кстати, при создании битмапа типа TBitmap сначала указывай PixelFormat, а потом выставляй размеры.