如何将实时创建的PictureBox图像转换为字节?

时间:2015-01-14 12:09:21

标签: c# .net image winforms bytearray

我的屏幕上有一个.net PictureBox,可以通过签名板输入设备实时创建图像。

我试图从图像中获取字节以保存但由于PictureBox始终处于打开状态,因此我无法获取.Image属性,因为它始终为NULL。

有没有办法以某种方式关闭PictureBox,以便从中获取图像?

这是我尝试获取字节的地方,但由于实时创建,.Image为NULL:

private void btnConfirm_Click(object sender, EventArgs e)
{    
    byte[] imgData = null;
    // storage for the img bytes
    picSignature.Update();
    imgData = ImgToByteArray(picSignature.Image, ImageFormat.Jpeg);

    SerialPortListener.MainForm._imagevalues = imgData;
    this.Close();
}

这是我认为写下签名的代码:

private void SignatureDataHandler(Int32 xAxis, Int32 yAxis, Int32 pressure, Int32 timeStamp)
{
    long x;
    long y;
    Pen myPen = new Pen(Color.Black, 1);

    x = (picSignature.Width * (xAxis - g_xMin)) / (g_xMax - g_xMin);
    y = (picSignature.Height * (yAxis - g_yMin)) / (g_yMax - g_yMin);
    if ((x > picSignature.Width) || (x < 0))
    {
        MessageBox.Show("problem");
    }
    if (0 != pressure)
    {
        if (g_fFirstTouch)
        {
            g_PicGraphics.DrawLine(myPen, x, y, x, y);
            g_fFirstTouch = false;
        }
        else
        {
            g_PicGraphics.DrawLine(myPen, g_lastX, g_lastY, x, y);
        }
    }
    else
    {
        g_fFirstTouch = true;
    }

    g_lastX = x;
    g_lastY = y;
}

0 个答案:

没有答案