Delphi-Quellcode:
procedure Graustufe(Bitmap: TBitmap);
var x,y :integer;
pixel :^TRGB;
grau :TColor;
begin
for y:= 0 to bitmap.height-1 do
begin
pixel:= bitmap.Scanline[y];
for x:= 0 to bitmap.width-1 do
begin
grau:= HiByte(pixel.red*77+pixel.green*151+pixel.blue*28);
pixel.red:= grau;
pixel.blue:= grau;
pixel.green:= grau;
inc(pixel)
end
end;
bitmap.assign(Bitmap);
end;
procedure TForm1.Button1Click(Sender: TObject);
var jpeg: TImage;
begin
jpeg:=TImage.Create(Self);
jpeg.picture.loadfromfile('C:\Bild1.jpg');
image1.height:=jpeg.picture.Height;
image1.Width:=jpeg.picture.Width;
Image1.Canvas.Draw(0,0,jpeg.Picture.graphic);
Image1.picture.Assign(jpeg.picture);
end;
procedure TForm1.Button2Click(Sender: TObject);
var pic: Tbitmap;
begin
pic:=TBitmap.create;
pic.Assign(Image1.picture.graphic);
Graustufe(pic);
Image1.Picture.bitmap.assign(pic);
pic.free;
Image1.picture.SaveToFile('C:\lol.bmp');
end;
also was wohl ein beliebter fehler sein könnte
pic.Assign(Image1.picture.graphic);
dass man hier
Image1.picture.bitmap
benutzt.
ist jetzt nicht sauber programmiert, mit try und except und so... aber sollte funktionieren