我需要绘制一个矩形,在纸上打印时应该是2X2英寸左右的大小。绘制尺寸为2X2英寸的矩形 - 切换到像素转换
我知道,我可以借鉴使用
g.DrawRectangle(pen, 100,100, 100, 200);
这个应用程序将只在computers.How使用矩形我可以转换英寸到正常像素,这样打印时,我可以得到想要的尺寸。
我需要绘制一个矩形,在纸上打印时应该是2X2英寸左右的大小。绘制尺寸为2X2英寸的矩形 - 切换到像素转换
我知道,我可以借鉴使用
g.DrawRectangle(pen, 100,100, 100, 200);
这个应用程序将只在computers.How使用矩形我可以转换英寸到正常像素,这样打印时,我可以得到想要的尺寸。
默认情况下,要以正确的大小打印图像,它需要有dpi
和像素的正确组合。
让我们来看一个例子:
// aiming at 150dpi and 4x6 inches:
float dpi = 150;
float width = 4;
float height = 6;
using (Bitmap bmp = new Bitmap((int)(dpi * width), (int)(dpi * height)))
{
// first set the resolution
bmp.SetResolution(dpi, dpi);
// then create a suitable Graphics object:
using (Graphics G = Graphics.FromImage(bmp))
using (Pen pen = new Pen(Color.Orange))
{
pen.Alignment = System.Drawing.Drawing2D.PenAlignment.Center;
G.Clear(Color.FloralWhite);
// using pixels here:
Size sz = new System.Drawing.Size((int)dpi * 2 - 1, (int)dpi * 2 - 1);
G.DrawRectangle(pen, new Rectangle(new Point(0, 0), sz));
G.DrawRectangle(pen, new Rectangle(new Point(0, 300), sz));
G.DrawRectangle(pen, new Rectangle(new Point(0, 600), sz));
G.DrawRectangle(pen, new Rectangle(new Point(300, 0), sz));
G.DrawRectangle(pen, new Rectangle(new Point(300, 300), sz));
G.DrawRectangle(pen, new Rectangle(new Point(300, 600), sz));
// alternative code:
// we can also set the Graphics object to measure stuff in inches;
G.PageUnit = GraphicsUnit.Inch;
// or fractions of it, let's use 10th:
G.PageScale = 0.1f;
using (Pen pen2 = new Pen(Color.MediumPurple, 1f/dpi * G.PageScale))
{
// draw one rectangle offset by an inch:
G.DrawRectangle(pen2, 10f, 10f, 20f, 20f);
}
bmp.Save(@"D:\xxx.jpg", ImageFormat.Jpeg);
}
}
注意,我不得不从绘制大小减去1个像素为DrawRectangle
透支 1个像素!
请注意,我在画坐标取决于分辨率!另请注意,jpeg格式如何创建大量模糊的颜色。 Png
创建更加清晰的结果,尤其是一旦您打印文本。
另请注意我是如何在替代代码中缩小PenWidth
的!
全部取决于打印机上的DPI(每英寸点数)设置。当您发送文档进行打印时,您应该能够指定所需的DPI,以便使其更容易一些。基本上,如果你有100dpi的打印机,例如,那么你想绘制矩形2000 x 2000(20 x 100)......当然你需要足够大的纸张。你的标准A4不适合 – musefan
@musefan对不起,它是2X2英寸。 – techno
公顷,然后只是重新计算然后... [DPI设置] x [长度以英寸] = [像素数量] – musefan