我将一些图像处理功能从 .NET 迁移到 Python,但条件是输出图像必须以与 .NET 中完全相同的方式进行压缩。但是,当我在文本比较.jpg等工具上比较输出文件时和 choice 等Ignore nothing时,发现文件的压缩方式存在显着差异。
例如:
Python
bmp = PIL.Image.open('marbles.bmp')
bmp.save(
'output_python.jpg',
format='jpeg',
dpi=(300,300),
subsampling=2,
quality=75
)
Run Code Online (Sandbox Code Playgroud)
。网
ImageCodecInfo jgpEncoder = ImageCodecInfo.GetImageDecoders().First(codec => codec.FormatID == ImageFormat.Jpeg.Guid);
EncoderParameters myEncoderParameters = new EncoderParameters(1);
myEncoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, 75L);
Bitmap bmp = new Bitmap(directory + "marbles.bmp");
bmp.Save(directory + "output_net.jpg", jgpEncoder, myEncoderParameters);
Run Code Online (Sandbox Code Playgroud)
exiftool output_python.jpg -a -G1 -w txt
[ExifTool] ExifTool Version Number : 12.31
[System] File Name : output_python.jpg
[System] Directory : .
[System] …Run Code Online (Sandbox Code Playgroud)