/// <summary> /// 检查图像是否改变并更新Buffer /// </summary> /// <param name="objIBaseData">图像数据对象</param> private void __UpdateBufferSize(IBaseData objIBaseData) { if (null != objIBaseData) { if (__IsCompatible(m_bitmapForSave, m_nWidth, m_nHeigh, m_bIsColor)) { m_nPayloadSize = (int)objIBaseData.GetPayloadSize(); m_nWidth = (int)objIBaseData.GetWidth(); m_nHeigh = (int)objIBaseData.GetHeight(); } else { m_nPayloadSize = (int)objIBaseData.GetPayloadSize(); m_nWidth = (int)objIBaseData.GetWidth(); m_nHeigh = (int)objIBaseData.GetHeight(); m_byRawBuffer = new byte[m_nPayloadSize]; m_byMonoBuffer = new byte[__GetStride(m_nWidth, m_bIsColor) * m_nHeigh]; m_byColorBuffer = new byte[__GetStride(m_nWidth, m_bIsColor) * m_nHeigh]; //更新BitmapInfo m_objBitmapInfo.bmiHeader.biWidth = m_nWidth; m_objBitmapInfo.bmiHeader.biHeight = m_nHeigh; Marshal.StructureToPtr(m_objBitmapInfo, m_pBitmapInfo, false); } } }
/// <summary> /// 检查图像是否改变并更新Buffer /// </summary> /// <param name="objIBaseData">图像数据对象</param> private void __UpdateBufferSize(IBaseData objIBaseData) { if (null != objIBaseData) { if (__IsCompatible(m_bitmap, m_nWidth, m_nHeigh, m_bIsColor)) { m_nPayloadSize = (int)objIBaseData.GetPayloadSize(); m_nWidth = (int)objIBaseData.GetWidth(); m_nHeigh = (int)objIBaseData.GetHeight(); } else { m_nPayloadSize = (int)objIBaseData.GetPayloadSize(); m_nWidth = (int)objIBaseData.GetWidth(); m_nHeigh = (int)objIBaseData.GetHeight(); m_byRawBuffer = new byte[m_nPayloadSize]; m_byMonoBuffer = new byte[__GetStride(m_nWidth, m_bIsColor) * m_nHeigh]; m_byColorBuffer = new byte[__GetStride(m_nWidth, m_bIsColor) * m_nHeigh]; } } }