public void UpdateBitmap()
{
if ( m_Bitmap == null )
return;
int W = m_Bitmap.Width;
int H = m_Bitmap.Height;
using ( Graphics G = Graphics.FromImage( m_Bitmap ) )
{
using ( SolidBrush B = new SolidBrush( Color.Black ) )
G.FillRectangle( B, 0, 0, W, H );
if ( m_CameraCalibration != null && m_Thumbnail != null )
{
// Draw thumbnail
RectangleF ClientRect = ImageClientRect();
G.DrawImage( m_Thumbnail, ClientRect, new RectangleF( 0, 0, m_Thumbnail.Width, m_Thumbnail.Height ), GraphicsUnit.Pixel );
// Draw probe measurement circles if available
for ( int ProbeIndex=0; ProbeIndex < 6; ProbeIndex++ )
{
CameraCalibration.Probe P = m_CameraCalibration.m_Reflectances[ProbeIndex];
if ( !P.m_MeasurementDiscIsAvailable )
continue;
PointF ClientPos = ImageUV2Client( new PointF( P.m_MeasurementCenterX, P.m_MeasurementCenterY ) );
float ClientRadius = ClientRect.Width * P.m_MeasurementRadius;
// G.DrawEllipse( m_PenProbeShadow, ClientPos.X - ClientRadius, ClientPos.Y - ClientRadius, 2*ClientRadius, 2*ClientRadius );
G.DrawEllipse( P.m_IsAvailable ? m_PenProbe : m_PenProbeInvalid, ClientPos.X - ClientRadius, ClientPos.Y - ClientRadius, 2*ClientRadius, 2*ClientRadius );
}
}
}
Invalidate();
}