在不改变大小或格式的情况下旋转图像

时间:2014-01-10 04:22:35

标签: vb.net

我的JPG图像大小约为500 KB,我想将图像90向右旋转..当我用(Windows照片查看器)旋转此图像时,大小或格式保持不变.. < / p>

            Dim newImage As Image = Image.FromFile(imageName)
            newImage.RotateFlip(RotateFlipType.Rotate90FlipNone)
            newImage.Save(imageName)

当我使用此代码时,格式从JPG变为PNG,并且500 KB的大小也变为1.5 MB

2 个答案:

答案 0 :(得分:1)

它将根据您保存结果图像的代码更改其格式。

话虽这么说,你将无法单独使用.NET进行无失败的JPG转换。您必须打开,旋转和保存编码。

某些桌面应用程序(如ACDSee)提供无可用的JPG轮换,但它们会在更深层次上进行。

让我们退后一步:为什么需要旋转图像?这是一幅可能包含相机旋转信息的肖像吗?然后,应该研究像FreeImage这样的其他成像库,因为它们可以打开JPG并自动旋转。

答案 1 :(得分:0)

可能是因为图像被重新编码。我在文档中看不到RotateFlip应该是无损的。

使用Google快速浏览可以尝试this article

压缩JPEG图像,当您更改图像中的某些内容时,您需要重做压缩,至少对于编辑过的部分。对于90°旋转,您可以使用这种特殊的无损技巧,但如果您只旋转图像并尝试压缩结果,则不会应用此技巧。你需要使用魔术。如果要删除压缩,请另存为BMP或使用PNG等无损压缩。