Emgu Image<Bgr, Byte> frame
을 JPEG로 메모리 스트림에 저장할 수 있습니까?메모리 스트림에서 Emgu`Image <Bgr, Byte> frame '을 JPEG로 저장하는 방법은 무엇입니까?
1
A
답변
4
첫 번째 옵션은 네이티브 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;
}
희망,
건배,
크리스
1
좋은 품질과 높은 속도로 빠르고 더러운 방법은 다음과 같습니다
C#
yourImage.toBitmap().Save("filename.png");
여기에 언급 된3210
VB
YourImage.ToBitmap().Save("filename.png")
1
모든 방법은 좋은 그러나 여기 나를 위해 좋은 작동 다른 빠르고 간단한 방법을 공유하고있다. 먼저 Emgu.CV를 가져 오십시오. Image <,> to System.Drawing. 이미지 다음 저장 방법을 사용하여 JPEG을 메모리 스트림에 저장하십시오.
추가 참조 :
using System.Drawing.Imaging;
using System.IO;
using Emgu.CV;
유형이 코드 :
MemoryStream MyMemoryStream = new MemoryStream();
Image MySystemImage = MyEmguImage.ToBitmap();
MySystemImage.Save(MyMemoryStream, ImageFormat.Jpeg);
감사