Dan*_*ann 1 opencv computer-vision emgucv opencvdotnet
如何将Emgu Image<Bgr, Byte> frame作为JPEG 保存在内存流中?
你有两个选择,第一个是原生的EMGU images.save("filename"); 但是方法质量不是很好而且有损.最好的方法是使用以下c#方法.
这个函数是saveJpeg(SaveFile.FileName,img.ToBitmap(),100);. 基于saveJpeg方法(字符串路径,位图img,长质量).
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;
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助,
干杯,
克里斯
| 归档时间: |
|
| 查看次数: |
13336 次 |
| 最近记录: |