Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
4-1093079315
Arnold
2004-08-21 13:08
2004.10.03
Как узнать количество запущенных процессов???


1-1095262239
Slaviq
2004-09-15 19:30
2004.10.03
Печать через темопринтер BZ-2


6-1090591822
Skyhawk
2004-07-23 18:10
2004.10.03
Как зайти в систему на удаленном компьютере


14-1095230405
Igorek
2004-09-15 10:40
2004.10.03
Ой, верните назад


14-1095225731
Ozone
2004-09-15 09:22
2004.10.03
Интересная задачка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский