怎样让Printer.Canvas.Pixels[15, 15] := clBlack的一个象素点打印出来清楚啊?(200分)

  • 主题发起人 WangZhaoHui
  • 开始时间
W

WangZhaoHui

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样让Printer.Canvas.Pixels[15, 15] := clBlack的一个象素点变大一些啊?
这个象素点打印出来太小啦。根本看不清。有什么函数可以转吗?不能用MoveTo,LineTo啊,太慢啦。
 
设置canvas的Brush属性吧
 
我的打印机是1200 每英寸1200点,
to wwolf,不行啊。
 
把打印机分辨率设低就可以了,(打印机属性->图形->分辨率)
 
画个圆吧
Canvas.Brush.Color := clblack;
Canvas.Brush.Style := bssolid;
Canvas.Ellipse(15, 15, 20,20);
 
不行啊,我的打印机最低为600 dpi,不能设得更低啦,有没有转换函数啊?
 
to resun :方法是可以,但速度太慢啦:(,因为我要画好多象素点啊。
 
你是想画线吧?为什么不能用lineto,我一直用lineto,画6000个点,感觉不出速度有多慢
你有多少个点要画?
 
您好,我是往HP 1200 打印机上画心电图网格啊,不知为什么特别慢,
Printer.Canvas.Pixels[X, Y] := clBlack快了不少,但必须300*300下才能看清象素点,但HP 1200 打印机
的最小设置为:600 dpi 啊,我是想问如何用程序设置打印机的打印分分辨率为300 dpi
 
画一个圆!或进行适当变换
 
画圆当然会比较慢了,就算你用 Bresenham 算法,也还要涉及到乘法操作(移位)。
不如直接在周围以多点的形式画,如:
with Printer.Canvasdo
begin
Pixels[X - 1, Y - 1] := clBlack;
Pixels[X, Y - 1] := clBlack;
Pixels[X + 1, Y - 1] := clBlack;
Pixels[X - 1, Y] := clBlack;
Pixels[X, Y] := clBlack;
Pixels[X + 1, Y] := clBlack;
Pixels[X - 1, Y + 1] := clBlack;
Pixels[X, Y + 1] := clBlack;
Pixels[X + 1, Y + 1] := clBlack;
end;

别看写起来麻烦,画起来应该挺快的。
 
to beta,不行啊,这该死的HP 1200特别慢,因为我要画的点实在太多啦。有没有能将打印机设成300dpi的函数啊?
 
那减少成 5 个点呢?(打印机我实在不会设置[:(])
with Printer.Canvasdo
begin
Pixels[X, Y - 1] := clBlack;
Pixels[X - 1, Y] := clBlack;
Pixels[X, Y] := clBlack;
Pixels[X + 1, Y] := clBlack;
Pixels[X, Y + 1] := clBlack;
end;

要是打印 6000 个点,这样也比我刚才的方法少打 4 * 6000 = 24000 个点呢。
 
呵呵,我又想到一个办法,不知是否可行,你可以试一试:
先把所有点都画在一个 Image 上,这样比直接操作打印机快多了,
然后直接用打印机打印该 Image :)
 
beta的方法应该可以,我以前也用过,但如果有文字的话可能不好看,分辨率不够
 
呵呵,不行啊,我的心电图网格要求精度很高的(1毫米都不能差),还有谁知道如果在程序中操作打印机的配置选项吗?
 
将 canvas.pen.width 设置了大一些。
 
to jsxjd:不行啊。
 
用画线的方法来画点:
procedure TForm1.Button1Click(Sender: TObject);
begin
canvas.Pen.Width:=10;
canvas.Pen.color:=0;
Canvas.moveto(15,15);
Canvas.lineto(15,15);
end;
 
to jsxjd:不行啊。太慢,我就是想问问怎样用程序将打印机的分辨率设成300dpi或是让打印机的一个象素点能变大。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
892
DelphiTeacher的专栏
D
顶部