using (var mem = new MemoryStream())
using (var bmp = new Bitmap(85, 54))
using (var gfx = Graphics.FromImage((Image)bmp))
{
    // gfx.SmoothingMode = SmoothingMode.AntiAlias;
    gfx.PageUnit = GraphicsUnit.Millimeter;
    gfx.FillRectangle(Brushes.Red, new Rectangle(0, 0, bmp.Width, bmp.Height));
    //add question
    gfx.DrawString(captcha, new Font("Arial", 5), Brushes.Blue, bmp.Width / 2, bmp.Height/2);
    //render as Jpeg
    bmp.Save(mem, System.Drawing.Imaging.ImageFormat.Jpeg);
    img = this.File(mem.GetBuffer(), "image/Jpeg");
}
return img;这不管用。我需要85x54毫米
怎么做的?
我需要打印的绘图
发布于 2012-08-31 07:42:43
此位图的大小以像素为单位。
当您在常规显示上显示位图时,单个像素将为1/96英寸。其他显示器可能有其他新闻部的(每英寸点) --如视网膜显示器
大多数打印机至少支持300个新闻部。
因此,您需要做的是获取屏幕新闻部或打印机,并相应地调整位图大小,或者使用图像格式(向量?)它允许您指定DPI。一些位图格式还允许您指定预定的DPI
发布于 2012-08-31 07:41:49
数字图像总是以像素为单位。从来没有毫米或英寸。根据DPI (每英寸点)打印时使用的像素,像素被转换为毫米或英寸。
对于屏幕,每英寸使用72像素,打印使用300像素。
对于图片(85x54mm = 3.34x2.12in),使用(3.34 * 300) x (2.12 * 300) =1002x637像素打印。
https://stackoverflow.com/questions/12210853
复制相似问题