我有一个TIFF文件,其Orientation标签设置为TOPLEFT(第0行代表图像的可视顶部,第0列代表视觉左侧)。我创建一个新的TIFF并将其Orientation标记设置为RIGHTTOP(第0行代表图像的可视右侧,第0列代表可视顶部)并使用如下代码填充原始数据:
byte[] scanline = new byte[original_img.ScanlineSize()];
for (int i = 0; i < height; i++)
{
original_img.ReadScanline(scanline, i);
rotated_img.WriteScanline(scanline, i);
}
那个imo会顺时针旋转90°,这就是我想要的结果。问题是,简单地设置Orientation标签不起作用,我只是得到原始图像的副本。 提取原始图像的数据并对其进行操作,然后用旋转的数据填充新图片似乎不必要地复杂化,我想避免这种情况并找到一种简单的方法。有没有像我的方法一样简单的方法,如果有,请解释,还是我必须手动旋转图像数据?
修改 我用于设置方向标记的代码是:
rotated_img.SetField(TiffTag.ORIENTATION, BitMiracle.LibTiff.Classic.Orientiation.RIGHTTOP);
也可能值得一提的是,目前我只在该环境中使用BitMiracle.LibTiff.Classic。