为什么图片反复压缩后会普遍会变绿而不是其他颜色?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图片压缩后出现旋转的原因可能是由于图片的 EXIF 信息中包含了图片的旋转角度信息,而压缩后的图片可能没有正确处理这些信息导致的。 你可以尝试使用 C# 的 System.Drawing.Imaging 命名空间中的 Image 类来读取图片并进行压缩,同时在保存图片时清除掉图片的旋转角度信息。示例代码如下: ``` using System.Drawing; using System.Drawing.Imaging; public void CompressImage(string sourceFilePath, string targetFilePath, int quality) { using (var image = Image.FromFile(sourceFilePath)) { var encoderParameters = new EncoderParameters(1); encoderParameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality); using (var ms = new System.IO.MemoryStream()) { // 清除旋转角度信息 var propItem = image.PropertyItems.FirstOrDefault(p => p.Id == 0x0112); if (propItem != null) { image.RemovePropertyItem(propItem.Id); } // 压缩图片 image.Save(ms, GetEncoderInfo("image/jpeg"), encoderParameters); var compressedImage = Image.FromStream(ms); // 保存图片 compressedImage.Save(targetFilePath, ImageFormat.Jpeg); } } } private static ImageCodecInfo GetEncoderInfo(string mimeType) { var encoderInfos = ImageCodecInfo.GetImageEncoders(); return encoderInfos.FirstOrDefault(encoder => encoder.MimeType == mimeType); } ``` 这段代码中通过 Image.FromFile 方法读取图片,然后使用 EncoderParameters 对象设置图片压缩质量,最后使用 Image.Save 方法保存图片。在保存图片之前,通过 PropertyItems 属性获取到图片的 EXIF 信息,找到旋转角度信息并删除,确保压缩后的图片出现旋转问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值