我正在尝试对多页 tiff 文件执行条形码识别。但是 tiff 文件是从传真服务器(我无法控制)发送给我的,该服务器以非方形像素长宽比保存 tiff。这导致图像由于纵横比而被严重挤压。我需要将 tiff 转换为方形像素长宽比,但不知道如何在 C# 中执行此操作。我还需要拉伸图像,以便更改纵横比仍然使图像清晰可见。
有人用 C# 做过这个吗?或者有人使用过可以执行此类过程的图像库吗?
如果其他人遇到同样的问题,这是我最终解决这个恼人问题的超级简单方法。
using System.Drawing;
using System.Drawing.Imaging;
// The memoryStream contains multi-page TIFF with different
// variable pixel aspect ratios.
using (Image img = Image.FromStream(memoryStream)) {
Guid id = img.FrameDimensionsList[0];
FrameDimension dimension = new FrameDimension(id);
int totalFrame = img.GetFrameCount(dimension);
for (int i = 0; i < totalFrame; i++) {
img.SelectActiveFrame(dimension, i);
// Faxed documents will have an non-square pixel aspect ratio.
// If this is the case,adjust the height so that the
// resulting pixels are square.
int width = img.Width;
int height = img.Height;
if (img.VerticalResolution < img.HorizontalResolution) {
height = (int)(height * img.HorizontalResolution / img.VerticalResolution);
}
bitmaps.Add(new Bitmap(img, new Size(width, height)));
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)