M Milpas Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-06 #1 Bitmap,不能改调色板的颜色,替换颜色的值,有什么好方法? 逐个象素读取好象太慢.
H huazai Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-07 #2 用scanline啊,速度不慢吧,灰度图就是这么获得的
H huazai Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-07 #4 一个灰度化图象的例子,用scanline实现,24位位图! procedure TMainForm.GraychangeClick(Sender: TObject); var p: PByteArray; x, y: Integer; Bmp: TBitmap; Gray: byte; begin Bmp := TBitmap.Create; Bmp.Assign(Image1.Picture.Bitmap); Bmp.PixelFormat := pf24Bit; for y := 0 to Bmp.Height - 1 do begin p := Bmp.scanline[y]; for x := 0 to Bmp.Width - 1 do begin Gray := Round(p[x * 3 + 2] * 0.3 + p[x * 3 + 1] * 0.59 + p[x * 3] * 0.11); p[x * 3] := Gray; p[x * 3 + 1] := Gray; p[x * 3 + 2] := Gray; end; end; image1.picture.bitmap.assign(bmp); bmp.free; end;
一个灰度化图象的例子,用scanline实现,24位位图! procedure TMainForm.GraychangeClick(Sender: TObject); var p: PByteArray; x, y: Integer; Bmp: TBitmap; Gray: byte; begin Bmp := TBitmap.Create; Bmp.Assign(Image1.Picture.Bitmap); Bmp.PixelFormat := pf24Bit; for y := 0 to Bmp.Height - 1 do begin p := Bmp.scanline[y]; for x := 0 to Bmp.Width - 1 do begin Gray := Round(p[x * 3 + 2] * 0.3 + p[x * 3 + 1] * 0.59 + p[x * 3] * 0.11); p[x * 3] := Gray; p[x * 3 + 1] := Gray; p[x * 3 + 2] := Gray; end; end; image1.picture.bitmap.assign(bmp); bmp.free; end;
M Milpas Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-07 #7 有没有函数将BITMAP或Canvas中的某一种颜色全部换成另一种颜色?
H huazai Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-07 #8 这种函数怎么写出来得?还不是象素?如果是整个一副图颜色反转,倒是可以用invertrectrgn();
A arcore Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-16 #9 invertrectrgn函数是API吗?我在Delphi帮助里面查不到。
M Milpas Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-16 #10 我不想要答案了,我直接改BMP文件,可能会慢一点,但是直接多了 另外想问新问题: [red]两个不同的调色板,如何建立它们的对应关系? 我现在是凭肉眼来确定(好在俺不是色肓) 有没有算法? 举个例子:将一幅图由调色板A换到调色板B,如果A有这个色rgb(255,34,99), B没有,那应该转为B的哪一个色?[/red] 懂的请说话,可加分
我不想要答案了,我直接改BMP文件,可能会慢一点,但是直接多了 另外想问新问题: [red]两个不同的调色板,如何建立它们的对应关系? 我现在是凭肉眼来确定(好在俺不是色肓) 有没有算法? 举个例子:将一幅图由调色板A换到调色板B,如果A有这个色rgb(255,34,99), B没有,那应该转为B的哪一个色?[/red] 懂的请说话,可加分