0

我知道 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);
4

1 回答 1

0

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

这里的很多东西确实取决于打印机。例如,对于大多数喷墨打印机,您可以绘制的最细线更粗,即使/如果它们引用相同(甚至更高)的分辨率。线条通常也不是很干净——在这两种情况下,它们在中心最暗,并且褪色到纸张颜色,但是使用“褪色”的喷墨通常要慢一些,所以边缘线路不是很干净。

于 2012-06-07T03:32:01.087 回答