Всем спасибо, решение найдено.
X++:
display FilePath imageView()
{
System.Drawing.Bitmap bmp;
System.Drawing.Graphics gBmp;
System.Drawing.Graphics gBmp2;
System.Drawing.Color color;
System.Drawing.SolidBrush brush;
Image image = new Image();
int64 hBitmap;
WinGDI winGDI;
;
bmp = new System.Drawing.Bitmap(100, 50);
if( this.path == "1" )//условие отрисовки картинки
{
color = System.Drawing.Color::FromArgb(0x99, 0xf0, 0xf0, 0);
}
else
{
color = System.Drawing.Color::FromArgb(0x99, 0xf0, 0, 0);
}
brush = new System.Drawing.SolidBrush(color);
gBmp = System.Drawing.Graphics::FromImage(bmp);
gBmp.FillEllipse(brush, 10, 10, 30, 30);
gBmp2 = System.Drawing.Graphics::FromImage(bmp);
gBmp2.DrawImage( System.Drawing.Image::FromFile( "S:\mf.jpg" ), 60, 10, 30, 30 );
hBitmap = bmp.GetHbitmap();
image.importBitmap(hBitmap);
image.saveImage( @"S:\\tmpfile.gif" );
winGDI = new WinGDI( hBitmap );
winGDI.deleteObject( hBitmap );
return "S:\\tmpfile.gif";
}
Единственная проблема сейчас - deleteObject не удаляет битмапы корректно, но это уже сами решим).