我的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
答案 0 :(得分:1)
它将根据您保存结果图像的代码更改其格式。
话虽这么说,你将无法单独使用.NET进行无失败的JPG转换。您必须打开,旋转和保存编码。
某些桌面应用程序(如ACDSee)提供无可用的JPG轮换,但它们会在更深层次上进行。
让我们退后一步:为什么需要旋转图像?这是一幅可能包含相机旋转信息的肖像吗?然后,应该研究像FreeImage这样的其他成像库,因为它们可以打开JPG并自动旋转。
答案 1 :(得分:0)
可能是因为图像被重新编码。我在文档中看不到RotateFlip
应该是无损的。
使用Google快速浏览可以尝试this article。
压缩JPEG图像,当您更改图像中的某些内容时,您需要重做压缩,至少对于编辑过的部分。对于90°旋转,您可以使用这种特殊的无损技巧,但如果您只旋转图像并尝试压缩结果,则不会应用此技巧。你需要使用魔术。如果要删除压缩,请另存为BMP或使用PNG等无损压缩。