萍 萍水相逢9 Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-03 #1 请教如何将bitmap上的前景图拷贝到另一个画布中,而背景色不复制。对不起各位大虾,分不够了
H hfghfghfg Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-03 #2 procedure TForm1.FormPaint(Sender: TObject); begin Image1.Picture.Bitmap.Transparent := true; self.Canvas.Draw(2, 2, Image1.Picture.Bitmap); end;
procedure TForm1.FormPaint(Sender: TObject); begin Image1.Picture.Bitmap.Transparent := true; self.Canvas.Draw(2, 2, Image1.Picture.Bitmap); end;
萍 萍水相逢9 Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-04 #3 多谢,不过还有一些问题。我的目的是要创建一个bitmap,然后在上面画了一条线,再将这条线拷贝到另一个已有图形的bitmap上,要求该线覆盖原图,而其余部分保留原来的图形。
Z ZhouSL Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-04 #4 单纯是线段的话,只需要改变一下CopyMode的属性就可以了。 Canvas.CopyMode:=cmSrcAnd; Canvas.CopyRect(...); 默认的CopyMode属性是cmSrcCopy; 最简单的方法了,但是底色必须是白色。不过线条的颜色可能会有一定改变,建议使用黑色的线条。 要高级一点的话,进行两次贴图,一次用cmSrcAnd,一次用cmSrcPaint。 注意:两次贴图中,第一次要贴屏蔽图即类似于Photoshop中的Mask功能,白色为底色,黑色为要贴的部分。第二次要贴的是原本图像,黑色底色。屏蔽图中的白色部分,在原本图像中必须是黑色,这样就可以贴图片了,颜色也不会有改变。我已经试验过了,可以用的。
单纯是线段的话,只需要改变一下CopyMode的属性就可以了。 Canvas.CopyMode:=cmSrcAnd; Canvas.CopyRect(...); 默认的CopyMode属性是cmSrcCopy; 最简单的方法了,但是底色必须是白色。不过线条的颜色可能会有一定改变,建议使用黑色的线条。 要高级一点的话,进行两次贴图,一次用cmSrcAnd,一次用cmSrcPaint。 注意:两次贴图中,第一次要贴屏蔽图即类似于Photoshop中的Mask功能,白色为底色,黑色为要贴的部分。第二次要贴的是原本图像,黑色底色。屏蔽图中的白色部分,在原本图像中必须是黑色,这样就可以贴图片了,颜色也不会有改变。我已经试验过了,可以用的。
D duanli Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-04 #5 Image1.Picture.Bitmap.Transparent := true; 这句实际上是把Pixels[0,0]的颜色值作为透明色滤掉了 除非你有特别的需要,建议使用第一种方法,只要把BMP的背景色设成不常用的就可以了 不过经典的做法确实如ZhouSL所说用两次贴图,抠出前景图来 但两种方法的原理是一样的
Image1.Picture.Bitmap.Transparent := true; 这句实际上是把Pixels[0,0]的颜色值作为透明色滤掉了 除非你有特别的需要,建议使用第一种方法,只要把BMP的背景色设成不常用的就可以了 不过经典的做法确实如ZhouSL所说用两次贴图,抠出前景图来 但两种方法的原理是一样的
E e- Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-04 #6 Canvas.Brush.Style := bsClear;
萍 萍水相逢9 Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-08 #7 目前,若对bitmap中的图形是256色的图形操作没问题,但若加入的不是pf8bit,则仍在叠加时产生颜色的变化。 请楼上各位大虾指点,如何将一张单色、或16色、或真彩色的bmp图形转换成256色bmp.多谢各位了!!
目前,若对bitmap中的图形是256色的图形操作没问题,但若加入的不是pf8bit,则仍在叠加时产生颜色的变化。 请楼上各位大虾指点,如何将一张单色、或16色、或真彩色的bmp图形转换成256色bmp.多谢各位了!!