【发布时间】:2014-06-28 06:47:49
【问题描述】:
public class testEmguCV : MonoBehaviour
{
private Capture capture;
void Start()
{
capture = new Capture();
}
void Update()
{
Image<Gray, Byte> currentFrame = capture.QueryGrayFrame();
Bitmap bitmapCurrentFrame = currentFrame.ToBitmap();
MemoryStream m = new MemoryStream();
bitmapCurrentFrame.Save(m, bitmapCurrentFrame.RawFormat);
Texture2D camera = new Texture2D(400, 400);
if (currentFrame != null)
{
camera.LoadImage(m.ToArray());
renderer.material.mainTexture = camera;
}
}
}
我使用上面的代码在统一的从 emgucv 相机到 texture2d 的相机馈送之间进行转换,但我遇到了 bitmapCurrentFrame.Save(m, bitmapCurrentFrame.RawFormat); 的问题
它给出了以下错误
ArgumentNullException:参数不能为空。参数名称: 编码器 System.Drawing.Image.Save(System.IO.Stream 流, System.Drawing.Imaging.ImageCodecInfo 编码器, System.Drawing.Imaging.EncoderParameters (encoderParams) System.Drawing.Image.Save(System.IO.Stream 流, System.Drawing.Imaging.ImageFormat 格式)(包装 remoting-invoke-with-check) System.Drawing.Image:Save (System.IO.Stream,System.Drawing.Imaging.ImageFormat) WebcamUsingEmgucv.Update () (在 Assets/WebcamUsingEmgucv.cs:51)
经过几个小时的思考和搜索,我不知道发生了什么,请帮忙
【问题讨论】:
-
我遇到了确切的问题,你解决了吗?
-
我通过使用 Unity 安装文件夹中的 system.drawing.dll 解决了这个问题。以前我使用 Windows 文件夹中的 system.drawing.dll 导致错误。