Форум: "Media";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "Media";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.042 c