![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Bitmap
AlexSSS © (2003-09-06 19:45:00)
Люди, пожалуйста, подскажите, как конвертировать цветное изображение в формате BitMap в оттенки серого. И, вообще, зная формат bmp можно описать структуру
Record
Var1: Type1;
Var2: Type2;
...
end;
и считать из файла переменную такого типа???
Заранее благодарен, Алексей.
Fenik (2003-09-06 20:50:00) [1]
По поводу:
> Люди, пожалуйста, подскажите, как конвертировать цветное изображение в формате BitMap в оттенки серого.
procedure GrayBmp(Bitmap: TBitmap);
function BLimit(A: Integer): Byte;
begin
if A < 0 then Result := 0
else if A > 255 then Result := 255
else Result := A;
end;
var n: Byte;
x, y: Integer;
Dest: pRGBTriple;
begin
Bitmap.PixelFormat := pf24Bit;
for y := 0 to Bitmap.Height - 1 do begin
Dest := Bitmap.ScanLine[y];
for x := 0 to Bitmap.Width - 1 do begin
with Dest^ do begin
n := BLimit(Round((rgbtBlue + rgbtGreen + rgbtRed)/3));
rgbtBlue := n;
rgbtGreen := n;
rgbtRed := n;
end;
Inc(Dest);
end;
end;
end;
А насчёт остального - ты сам-то понял, что спросил?
TButton (2003-09-06 20:47:00) [2]
глупость какая.... надо найти среднее из RGB каждого пикселя, а потом это среднее присвоить и R, и G, и B. imho.