如何在看起来比像素还细的打印机中绘制一条线



我知道GDI的限制。GDI 只能绘制宽度至少为 1 像素的线。但我仍然想在打印机中画一条看起来比 1 像素细的线。

你的意思是我可以这样做:

with cLogBrush do
begin
    lbStyle := BS_Solid;
    lbColor := ACanvas.Pen.Color;
    lbHatch := 0;
end;  
dwStyle := PS_COSMETIC or PS_ALTERNATE;
ACanvas.Pen.Handle := ExtCreatePen(dwStyle, 1, cLogBrush, 0, nil);
ACanvas.MoveTo(X1, Y1);
ACanvas.LineTo(X2, Y2);

例如,您可以绘制一条交替的黑白像素线。至少对于 600 到 1200 DPI 的典型激光打印机,这通常会很好地融入看起来不那么暗的线条中。然而,我应该补充一点,一条好的激光打印机只有一像素宽的线确实很细。

不过,这里很多确实取决于打印机。例如,对于大多数喷墨打印机,您可以绘制的最细线更粗,即使它们引用相同(甚至更高)的分辨率。线条通常也不那么干净 - 在这两种情况下,它们在中心最暗,并淡入纸张颜色,但使用"褪色"的喷墨通常要慢得多,所以线条的边缘不那么干净。

最新更新