Вниз
Скачать: CL | DM;

Цветной TBitmap -> Черно-белый TBitmap   Найти похожие ветки 

 
Evgeniy_K   (2003-11-09 18:12) [0]

У меня есть TBimtap картинка. Как сделать ее монохромной?


 
крот   (2003-11-09 18:53) [1]

Есть такая идея. Цвет каждого пикселя можно представить не только в ргб но и в формате HBS (Heu, Saturation, Brightness). Saturation - Это интенсивность цвета

Далее так:

1. Цвет каждого пикселя перевести в формат HSB
2. Убрать saturation до нуляю
3. Из формата HSB получить цвет и назначить его пикселю.

Вот здесь есть статья про HSB и пример на паскале по переводу
RGB>>HSB и HSB>>RGB

http://www.uni-vologda.ac.ru/students/lav&pan/data/hsv_hsl_hsb_hsi/hsv_hsl_hsb_hsi.html

Я сам не пробовал, надеюсь получиться, удачи.


 
wnew   (2003-11-09 21:51) [2]

PROCEDURE TForm1.RGBToGRay;
TYPE
PixelArray = ARRAY[1..3] OF Byte;
VAR
PPixels : ^PixelArray;
i,u : Integer;
NewColor : Byte;
BEGIN;
WITH Image1.Picture.Bitmap DO
BEGIN;
FOR i:= 0 TO Height-1 DO
BEGIN;
PPixels := Scanline[i];
FOR u:=0 TO width-1 DO
BEGIN;
NewColor := HiByte(PPixels^[1]*76+PPixels^[2]*149+PPixels^[3]*28);
PPixels^[1] := NewColor;
PPixels^[2] := NewColor;
PPixels^[3] := NewColor;
inc(PPixels);
END;
END;
END;
Image1.Refresh;
END;


 
Fenik ©   (2003-11-09 22:20) [3]

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;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.016 c
3-65690
e-art
2003-11-01 15:46
2003.11.20
php и InterBase


14-66077
wl
2003-10-23 00:49
2003.11.20
линк к IDA Pro 4.5 (Interactive Disassembler)


1-65996
Zheks
2003-11-10 12:55
2003.11.20
Как дописать в начало типизированного файла?


1-65947
staryx
2003-11-11 12:32
2003.11.20
Отслеживание мыши.


1-65817
Ломброзо
2003-11-10 11:02
2003.11.20
VB ActiveX




   Наверх