我试图编写一个代码来获取图像(PNG,JPG,BMP,ETC')裁剪并旋转图像。 我想裁剪图像而不会丢失信息(插值没有变化) 所以我正在使用
Bitmap target = new Bitmap(cropRect.Width, cropRect.Height);
using (Graphics g = Graphics.FromImage(target))
{
g.DrawImage(img, new Rectangle(0, 0, target.Width, target.Height),
cropRect,
GraphicsUnit.Pixel);
}
其中target是裁剪后的图像。 img是原始图像,cropRect是我想裁剪的裁剪矩形。 因为我保持图像大小(没有缩放),所以不应该丢失任何信息。
之后我正在使用
旋转图像 target.RotateFlip(RotateFlipType.Rotate90FlipNone);
因为旋转90度 - 它应该保持无损。 那是对的吗? 我无法找到关于该主题的任何文件,如果有人有链接我会很感激!
答案 0 :(得分:0)
你可以使用DrawImageUnscaled
/ DrawImageUnscaledAndClipped
来绝对确保它没有做任何时髦的事情,尽管我怀疑它无论如何都会在你的情况下。由于它的90度增量和/或翻转,RotateFlip
不应降低图像质量。
但是,如果您将图像重新保存为非无损格式,您肯定会丢失一些信息。