Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Как изменить Palette в BitMap


Автор: lexaltd 27.11.2008, 21:59
У меня такая проблема:
Мне надо загрузить рисунок (рисунок чёрно - белый) в BitMap , а потом в Image.Picture и рисовать на Image.Picture и при этом все изменения сохраняются в источнике BitMap.

Загружаю так:
source1.LoadFromFile(OpenPictureDialog1.FileName); 
Image3.Picture.Assign(source1);

Но при рисование цвета только белый, чёрный , и оттенки серого
У рисунка палитра - Inclexecl Color.

Вопрос: 
Как мне BitMap(с загруженым в него рисунком с палитрой Inclexecl Color) переделать Palette в RGB ???

Я в этом не сильно разбираюсь , если можно оъяснить на примере , в инете нашёл пару статей , но так ине смог раздуплится.
Зарание спасибо.

P.S. Пробывал так выводить Image3.Canvas.Draw(0,0,source1); , но при Image3.Canvas.Pen.Width равном больше 5 начинаются рывки при рисованиии примитивов

Автор: Alexeis 27.11.2008, 22:29
У битмапа есть свойство PixelFormat. Если его установить в Pf24Bit и потом сохранить в файл то автоматически скорвертируется smile  .

Автор: AntonN 27.11.2008, 23:18
а можно и в pf32bit выставить smile
только операция скорее односторонняя, из 32 битного в 1 (или 8) битный путем выставления pf*bit будет очень убого

Автор: lexaltd 27.11.2008, 23:18
 Alexeis     Огромное спасибо , помогло.

Сделал так :
      source1.LoadFromFile(OpenPictureDialog1.FileName);
      source1.PixelFormat := pf24bit;
      Image3.Picture.Assign(source1);

И сразу рисует цветом , без сохранения в файл 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)