Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Знатоки, подскажите, как на основе ф-и (ниже) перевести рис. [D5]


Серг ©   (2002-05-25 15:08:00) 

в оттенки серого? Делаю так, дальше что то не идет :)

procedure TForm1.Button2Click(Sender: TObject);
var
b:TBitmap;
i,j:integer;
begin
for i:=0 to Image2.Picture.Width do
for j:=0 to Image2.Picture.Height do
begin
//????
end;
Image3.picture.assign(b);
end;

function RgbToGray(RGBColor : TColor) : TColor;
var
Gray : byte;
begin
Gray := Round((0.30 * GetRValue(RGBColor)) +
(0.59 * GetGValue(RGBColor)) +
(0.11 * GetBValue(RGBColor )));
Result := RGB(Gray, Gray, Gray);
end;


KilkennyCat   (2002-05-25 23:41:00) [1]

а если просто bmp.grayscale := true ?


Donal_Graeme   (2002-05-25 19:10:00) [2]

думаю, вопрос состоит в том, как получить цвет в определённой точке.

есть три пути. с увеличением скорости выполнения :
1. Bitmap.Canvas.Pixels[X, Y];
2. Bitmap.Scanline[X]
3. через Dib. тут я не скажу пример. не работал.


MBo   (2002-05-25 15:23:00) [3]

Надо создать 256-цветную палитру в градациях серого в bitmap, и заполнить bitmap значениями из приведенной функции


Наверх

Титульная страница Поиск, карта сайта Написать письмо