[英]Convert Mat to MemoryStream OpenCV for Android
使用 OpenCVSharp,将 Mat 对象转换为 MemoryStream 非常容易。
private Stream GetStream(Mat mat, string ext)
{
return mat.Clone().ToMemoryStream(ext);
}
如何使用 Xamarin.OpenCV.Droid 执行此操作?
您使用Imgcodecs.Imencode
从Mat
实例和所需的编码填充MatOfByte
实例,然后您可以从中获取byte[]
以填充Stream
。
注意:OpenCVSharp 有一系列辅助函数,它们在调用ToMemoryStream
方法时执行这些函数。
using (var matFromPng = Imgcodecs.Imread(cachedFileName, Imgcodecs.ImreadColor))
using (var vect = new MatOfByte())
{
if (Imgcodecs.Imencode(".jpg", matFromPng, vect))
{
var stream = new MemoryStream(vect.ToArray());
// Do something with your stream...
cachedFileName = Path.Combine(CacheDir.AbsolutePath, "her.jpg");
using (var cacheFilestreamToJpeg = new FileStream(cachedFileName, FileMode.Create, FileAccess.Write))
{
stream.CopyTo(cacheFilestreamToJpeg);
}
stream.Dispose();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.