gpt4 book ai didi

.net - 如何将内存流中的 Emgu `Image frame` 保存为 JPEG?

转载 作者:太空宇宙 更新时间:2023-11-03 21:57:09 25 4
gpt4 key购买 nike

如何保存 Emgu Image<Bgr, Byte> frame在内存流中作为 JPEG?

最佳答案

您有两个选择,第一个是原生 EMGU images.save("filename");方法但是质量不是很好而且有损。最好的方法是使用下面的c#方法。

这是函数 saveJpeg(SaveFile.FileName, img.ToBitmap(), 100);。基于方法 saveJpeg(string path, Bitmap img, long quality)。

using System.Drawing.Imaging;

private void saveJpeg(string path, Bitmap img, long quality)
{
// Encoder parameter for image quality

EncoderParameter qualityParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);

// Jpeg image codec
ImageCodecInfo jpegCodec = this.getEncoderInfo("image/jpeg");

if (jpegCodec == null)
return;

EncoderParameters encoderParams = new EncoderParameters(1);
encoderParams.Param[0] = qualityParam;

img.Save(path, jpegCodec, encoderParams);
}

private ImageCodecInfo getEncoderInfo(string mimeType)
{
// Get image codecs for all image formats
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();

// Find the correct image codec
for (int i = 0; i < codecs.Length; i++)
if (codecs[i].MimeType == mimeType)
return codecs[i];
return null;
}

希望对你有帮助,

干杯,

克里斯

关于.net - 如何将内存流中的 Emgu `Image<Bgr, Byte> frame` 保存为 JPEG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10175441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com