问题描述
我正在执行 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 (将#修改为@)