如何将彩色图形打印成黑白图形,而不是灰度图(50分)

  • 主题发起人 主题发起人 soso
  • 开始时间 开始时间
S

soso

Unregistered / Unconfirmed
GUEST, unregistred user!
在程序中已生成一 BMP图,背景色为黑、绿、黄等之一种,前景色为白、红等与之区别的颜色,现需要打印,但不是灰度图,需要黑白图,有否简单方法转换并打印输出
 
不会吧,黑白图还能看??
 
自己生成一个BMP,再打印。
 
这是我的方法:(VC中纯用API,估计DELPHI也一定行)
HBITMAP hCBitmap;
HDC hdcMem;
hdcMem=CreateCompatibleDC(canvas.Handel);
hCBitmap=CreateCompatibleBitmap(hdcMem,tt,tt2);
SelectObject(hdcMem,hCBitmap);
BitBlt(hdcMem,0,0,tt,tt,canvas.Handel,0,0,SRCCOPY);//先将画布
上的内容拷贝到内存区,这样就变成黑白的了,绿黄色由点疏密来表示
BitBlt(canvas.Handel,50,100,tt,tt,hdcMem,0,0,SRCCOPY);再copy
回来,或copy到打印机的dc上。

声明:在VC上是肯定没问题,在delphi上你可以照我的方法试试,不行再说。

 
点疏密即是soso所说的灰度吧。
 
黑白图就是只有黑白两种颜色,这样的图怎么看?
 
二维的直方图可以用黑白两中颜色吧。
 
TO Hexi:
点的疏密不是灰度,灰度每个点都有深浅,而疏密是由许多黑点拼出的。
to www:
在图像光栅化中,这种转化是很重要的,可能soso不是为了看:〉
 
Crane的程序在delphi中可以用
image1.picture.bitmap.pixelformat := pf1bit;
代替.
 
我已自行了断
 
了断?什么?
 
eyes的方法应该可以。
 
soso:
我猜你大概是这样了断的:
反正背景就一种颜色,就打成黑色;
其他颜色一律为白。
是吗?
 
先用image1读入图片(直接设置也可)
image1.Picture.Bitmap.Monochrome:=true; //设置为单色
在输出至打印机
 
千万别“了断”啊!soso.....
 
我跟msb大侠意见相同。
 
我也遇到这个问题,目前还未很好解决。以上方法都试过,但只能解决部分问题。比
如图画中有一个灰色色块(背景色),转换后要求为白色,但始终是黑色的。(我想
soso的想法应是:把所有的背景色转换为白色,所有的前景色转换为黑色。不知对不
对?)我把显示器改为16bit后再用与msb相同的办法问题解决了,但很笨,我也希望有一个高效的办法,请各位大侠帮忙啦!
 

Similar threads

I
回复
0
查看
612
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部