Image .net rotateflip减少了文件大小

Image .net rotateflip减少了文件大小,image,compression,drawing,save,Image,Compression,Drawing,Save,我有一小段旋转图像的代码 Sub RotateImage(ByVal FilePath As String) Dim img = System.Drawing.Image.FromFile(FilePath) img.RotateFlip(System.Drawing.RotateFlipType.Rotate90FlipNone) img.Save("c:\test.jpg", ImageFormat.Jpeg) img.Dispose() End Sub 由

我有一小段旋转图像的代码

Sub RotateImage(ByVal FilePath As String)
    Dim img = System.Drawing.Image.FromFile(FilePath)
    img.RotateFlip(System.Drawing.RotateFlipType.Rotate90FlipNone)
    img.Save("c:\test.jpg", ImageFormat.Jpeg)
    img.Dispose()
End Sub
由于某些原因,新映像的大小为758kb,而不是原来的1.69MB

这是为什么?我该如何解决

我不想压缩图像,只是旋转它


除此之外,我比较了win explorer中的属性,它们似乎都是相同的,包括分辨率。那么实际发生了什么呢?

可能是因为图像被重新编码了。我在文件中看不到任何说明应该是无损的


通过谷歌快速浏览,您可以尝试一下。

您确定原始图像是jpg吗?它的扩展名是“.jpg”,它可以是其他的吗?这是直接从摄像机传来的。你有什么想法吗?有人吗?嗨,谢谢。我直到现在才回答,因为我想学习一点关于jpg和压缩的知识。我不太擅长的事情。你说rotateflip不一定是无损压缩。但是我可以完全不压缩吗?我一开始不想压缩。你链接到的代码,我过去已经尝试过了,但是给了我错误。现在我将再试一次,看看是否可以联系作者。如果您有任何补充,请执行:-)@Yisman,JPEG图像是压缩的,当您更改图像中的某些内容时,您需要重新进行压缩,至少对于编辑的部分。对于90°旋转,可以使用这种特殊的无损技巧,但如果只是旋转图像并尝试压缩结果,则不会应用这种技巧。你需要使用魔术。如果要删除压缩,请另存为BMP或使用无损压缩(如PNG)。这将增加文件大小。谢谢!现在开始工作了。它仍然会将文件减少几kb。你认为这是个问题吗?