public void SetImage(Stream dataStream)
 {
     imageWrapper = new ImageDataWrapper (dataStream,System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
     SetImage (imageWrapper);
 }
 private void SetImage(ImageDataWrapper data)
 {
     imageSurface = new ImageSurface (data.Pointer, Format.Argb32, data.Width, data.Height,data.Stride);
     //gScale = MinScale;
     scale=0;
     ReconfigureScrollbars();
     drawingarea1.QueueDraw ();
 }
 public void OnPlanImageChanged()
 {
     if (imageSurface != null) {
         imageSurface.Destroy ();
         imageSurface = null;
     }
     if (imageWrapper != null){
         imageWrapper.Dispose ();
         imageWrapper = null;
     }
     if (svg != null) {
         svg.Dispose ();
         svg = null;
     }
     if ((plan!=null)&&(plan.Image != null)) {
         using (var dataStream = new MemoryStream (plan.Image)) {
             if (plan.Filename.EndsWith (".svg")) {
                 SetSvg (dataStream);
             }else{
                 SetImage (dataStream);
             }
         }
         drawingarea1.QueueDraw ();
     } else {
         imageSurface = GenerateStub ();
     }
 }