如何确保我们获得无损图像
本文关键字:图像 我们 何确保 确保 | 更新日期: 2023-09-27 18:35:44
我正在尝试编写一个代码来获取图像(PNG,JPG,BMP')裁剪和旋转图像。我想在不丢失信息的情况下裁剪图像(插值没有变化)所以我正在使用
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);
}
其中目标是裁剪后的图像。 img 是原始图像,cropRect 是我要裁剪的裁剪矩形。因为我保持图像大小(无缩放),所以不应该丢失任何信息。
之后,我使用
target.RotateFlip(RotateFlipType.Rotate90FlipNone);
因为它是 90 度旋转 - 它应该保持无损。这是对的吗?我找不到有关该主题的任何文档,如果有人有链接,我将不胜感激!
您可以使用
DrawImageUnscaled
/DrawImageUnscaledAndClipped
来绝对确保它不会做任何时髦的事情,尽管我怀疑它无论如何都不会在你的情况下。而且由于它是 90 度增量和/或翻转,RotateFlip
不应该降低图像质量。
但是,如果将图像重新保存为非无损格式,则肯定会丢失一些信息。