我正在进行一个最小损失的90度旋转, 使用以下代码:
然而
使用jpegdump(dicom3tools软件包):
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();
}
然而
保存
函数似乎会从原始(纯净的,没有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
GetEncoder
函数是做什么的?我期望它会返回类似于ImageCodecInfo.GetImageEncoders().FirstOrDefault(e => e.FormatID == sourceFormat.Guid)
的内容。 - Charlieface