What are some good image libraries for C#? Mainly for things such as painting in layers. Or maybe a resource that can describe similar tasks?
With System.Drawing
:
Image GetLayeredImage(int width, int height, params Image[] layers)
{ Point layerPosition = new Point(0,0);
Bitmap bm = new Bitmap(width,height);
using(Graphics g = Graphics.FromImage(bm))
{ foreach(Image layer in layers) g.DrawImage(layer, layerPosition);
}
return bm;
}
In the above example, a method, GetLayeredImage() is defined that accepts the width/height of the composite image, along with an array of Image
objects, one for each layer. A point at (0,0) is defined as the top-left position for each layer. A Bitmap
object is created and from that a Graphics
object is created for drawing onto the bitmap. Each image in the array is then drawn onto the bitmap at the point (0,0)—you may want to change this by creating a different Point
value for each layer. The resulting bitmap is then returned. The return value is an image with all the layers drawn.
Here's an example on how to call this method:
Image layer1 = Image.FromFile("layer1.jpg");
Image layer2 = Image.FromFile("layer2.jpg");
Image layeredImg = GetLayeredImage(width,height,layer1,layer2);
pictureBox.Image = layeredImg;
I've used the third-party tool called LeadTools Imaging Pro SDK with great success.
http://www.leadtools.com/sdk/image-processing/default.htm
Usually anything like Paint.Net functionality will be obtained by way of third-party software or a lot of coding on your part.