我试着解释我需要什么。
1 - 我的目标条件是在笛卡尔点中转换图像的黑色像素而不调整图像大小。(OK完成)
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 相同的结果。好吧,最后我需要减少图像的像素数以获得定义的每英寸点数结果。
我希望我很清楚。
谢谢。