将图像尺寸(宽度,高度)更改为已定义的dpi

时间:2019-11-05 10:44:36

标签: c# image winforms

我试图解释我的需求。

1-我的目标条件是在不调整图像大小的情况下以笛卡尔点转换图像的黑色像素。 (确定,完成)

2-第二个目标条件是调整图像大小并重新执行步骤1。(好吧,我已将原始图像尺寸归一化,并且在更改宽度或高度时完成了工作!)

3-现在我需要减少图像中的像素数,以在图像中定义DPI数以重做步骤1。如何?我已经找到方法setResolution(..,..),但是如何必须更改图像的宽度和高度才能获得DPI正确的分辨率? (请参见代码中的[??????])

         var image2 = new Bitmap(canvasWidth, canvasHeight);
     image2.SetResolution(200.0f,200.0f); // I need this for example!
     using (System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(image2)) {
        gr.SmoothingMode = SmoothingMode.HighSpeed;
        gr.InterpolationMode = InterpolationMode.Low;
        gr.PixelOffsetMode = PixelOffsetMode.None;
        gr.Clear(Color.White);
        gr.DrawImage(this.LoadedImage, new System.Drawing.RectangleF(new PointF((float)this.Centre.x, (float)this.Centre.y), new Size(canvasWidth [?????], canvasHeight[??????])));
        return image2;
     }

如果我在新image2中的每个像素上运行,我得到的效果与在OriginalImage上运行的效果相同。好吧,最后,我需要减少图像的像素数量,以获得定义的每英寸点数。

我希望我很清楚。

谢谢。

0 个答案:

没有答案
相关问题