我想从字符串中保存图像.
所以我想知道如何在保存图像时以英寸为单位设置图像高度和宽度.
我的代码遵循图像保存:
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)
这不起作用.我们以像素为单位保存,因为英寸/厘米/英里不会转换为屏幕上的空间.这样做的原因是我们都使用不同的DPI设置,尽管92 DPI似乎是当今比较常见的设置之一.
打印机的DPI设置也各不相同......
要从英寸计算像素,您可以尝试:
pixels = inches * someDpiSetting
Run Code Online (Sandbox Code Playgroud)
但请记住,这不会导致每个屏幕上的英寸,每个打印输出等.
编辑:如果您看一下WPF,您会发现它对DPI有很好的支持,并且无论DPI如何,都会将表格转换为相同(给定或接受)大小.也许这有帮助吗?
| 归档时间: |
|
| 查看次数: |
11863 次 |
| 最近记录: |