微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#:在 JPEG 文件中保留 COM 标记无 EXIF

如何解决C#:在 JPEG 文件中保留 COM 标记无 EXIF

我正在执行 90° rotation with minimal loss,使用以下代码

System.Drawing.Image originalImage = System.Drawing.Image.FromFile("input.jpg");
ImageFormat sourceFormat = originalImage.RawFormat;
EncoderParameters encoderParams = null;
try
{
    if (sourceFormat.Guid == ImageFormat.Jpeg.Guid)
    {
        encoderParams = new EncoderParameters(1);
        encoderParams.Param[0] = new EncoderParameter(Encoder.Transformation,(long)EncoderValue.TransformRotate90);
    }
    originalImage.Save("output.jpg",GetEncoder(sourceFormat),encoderParams);
}
finally
{
    if (encoderParams != null)
        encoderParams.dispose();
}

然而,Save 函数似乎从原始(纯的,无 EXIF)JPEG COM 标记 (0xFE) 创建 EXIF 元数据。我不希望输出 JPEG 中有 EXIF 标记。我也想保留原来的COM标记。我可以使用应用程序中的哪些 C# API 来保存我的旋转缓冲区?

使用 jpegdump(dicom3tools 包):

$ jpegdump < input.jpg
[...]
Offset 0x0014 Marker 0xfffe COM Comment length variable 0x10

虽然:

$ jpegdump < output.jpg
[...]
Offset 0x0014 Marker 0xffe1 APP1 Reserved for Application Use length variable 0x5a

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。