怎样获取bmp图片的颜色(50分)

  • 主题发起人 主题发起人 c_mars
  • 开始时间 开始时间
搞不清你在说什么.是否某个点的颜色?
 
就是取色
 
用Bitmap.Canvas.Pixels[x,y]可以获得该像素的颜色
 
以前看到的一个图片灰度化的例子,看了你就知道如何取得并改变图片的颜色了
procedure TForm1.ToGray(abmp:TBitmap; rx,gx,bx,xx:integer);
var
i,j:integer;
p:pchar;
c:byte;
begin
abmp.HandleType := bmDIB;
abmp.PixelFormat := pf24bit;
for i:=0 to abmp.Height-1 do
begin
p := abmp.ScanLine;
for j:=1 to abmp.Width do
begin
c := (integer(p^)*rx+integer((p+1)^)*gx+integer((p+2)^)*bx) div xx;
if not(c<255) then c := 255;
p^ := chr(c); //
(p+1)^ := chr(c); //
(p+2)^ := chr(c); //R=G=B
inc(p,3);
end;
end;
end;
 
是点的颜色吗?还是色板的 如是点的则同意吕雪松

...
procedure TForm1.Button1Click(Sender: TObject);
var
color:TColor;
begin
color:=RGB(255,0,0);
form1.Canvas.Pixels[10,10]:=color;
end;
...
 
“一个图片灰度化的例子”——口碑不错呀,不骄傲了

如果点的数量不大用Pixels不错
大量点用ScanLine快些
 
多人接受答案了。
 
后退
顶部