public void Import(string filename, Gtk.Window parent)
{
FileStream stream = new FileStream(filename, FileMode.Open, FileAccess.Read);
pdn.Document loaded = PaintDotNetFileLoader.FromStream((stream));
// Create a new document and add an initial layer.
Pinta.Core.Document doc = PintaCore.Workspace.CreateAndActivateDocument(filename, new Gdk.Size(loaded.Width, loaded.Height));
doc.HasFile = true;
doc.Workspace.CanvasSize = doc.ImageSize;
int index = 0;
foreach (BitmapLayer l in loaded.Layers)
{
UserLayer layer = doc.CreateLayer(l.Name, l.Width, l.Height);
doc.Insert(layer, index++);
layer.Hidden = !l.Visible; // pdn stores visible, not hidden
layer.BlendMode = ConvertBlendMode(l.BlendMode);
layer.Opacity = Convert.ToDouble(l.Opacity) / 255.0; // pdn stores opacity with 255 as max
// Copy over the image data to the layer's surface.
CopyToSurface(l.Surface.Data.Buffer, layer.Surface);
}
}