如何设置图像的高度和宽度(英寸)?

Mou*_*Mou 3 c#

我想从字符串中保存图像.

所以我想知道如何在保存图像时以英寸为单位设置图像高度和宽度.

我的代码遵循图像保存:

 private void Base64ToImage(string base64String)
    {
        Image fullSizeImg = null;
        byte[] imageBytes = Convert.FromBase64String(base64String);
        MemoryStream ms = new MemoryStream(imageBytes);
        fullSizeImg = Image.FromStream(ms, true);
        System.Drawing.Image.GetThumbnailImageAbort dummyCallBack = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
        System.Drawing.Image thumbNailImg = fullSizeImg.GetThumbnailImage(700, 800, dummyCallBack, IntPtr.Zero);
        thumbNailImg.Save(ImagePath, System.Drawing.Imaging.ImageFormat.Png);
        fullSizeImg.Dispose();
        thumbNailImg.Dispose();


    }
Run Code Online (Sandbox Code Playgroud)

Smu*_*202 8

这不起作用.我们以像素为单位保存,因为英寸/厘米/英里不会转换为屏幕上的空间.这样做的原因是我们都使用不同的DPI设置,尽管92 DPI似乎是当今比较常见的设置之一.

打印机的DPI设置也各不相同......

要从英寸计算像素,您可以尝试:

pixels = inches * someDpiSetting
Run Code Online (Sandbox Code Playgroud)

但请记住,这不会导致每个屏幕上的英寸,每个打印输出等.

编辑:如果您看一下WPF,您会发现它对DPI有很好的支持,并且无论DPI如何,都会将表格转换为相同(给定或接受)大小.也许这有帮助吗?