.NET图像库

8

有哪些适用于C#的好的图像库?主要用于分层绘画等任务。或者是否有类似任务的资源可以描述?


你是在谈论图像还是绘图库?System.Drawing命名空间应该有足够的内容让你开始使用GDI。 - TheCloudlessSky
图像库,主要用于向PictureBox或自定义控件添加图像,并使每个图像成为独立的,以便可以单独操作。 - Rekar
你是否关心库所使用的编程语言,只要你能从C#中使用它? - John Saunders
还有ImageMagickImageMagick.NET - Uwe Keim
4个回答

4

使用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;
 }

在上面的例子中,定义了一个方法GetLayeredImage(),该方法接受合成图像的宽度/高度以及每个图层的Image对象数组,每个图层都定义了一个位于(0,0)的点作为左上角位置。创建一个Bitmap对象,从中创建一个Graphics对象用于在位图上绘制。然后将数组中的每个图像绘制到位图上的点(0,0)——您可能需要通过为每个图层创建不同的Point值来更改此值。然后返回生成的位图。返回值是一个包含所有图层绘制的图像。
以下是调用此方法的示例:
Image layer1 = Image.FromFile("layer1.jpg");
Image layer2 = Image.FromFile("layer2.jpg");
Image layeredImg = GetLayeredImage(width,height,layer1,layer2);
pictureBox.Image = layeredImg;

您能否解释一下如何使用 .NET 中已有的绘图/图形功能来创建图层,以便根据图层移动图像? - Rekar
1
我添加了一些关于动态GIF的信息。 - Mark Cidade
嗯,不完全是我想要的。当我提到运动时,我并不是指动画图像。实际上,我是指允许通过分层移动图像的位置,就像paint.net一样,但更简单的形式。 - Rekar
我是个新手。你能解释一下这段代码吗?或者告诉我如何正确地实现你提供的代码? - Rekar

2

GDI+是.NET自带的。


0

Leadtools和Atalasoft DotImage都非常不错。我在使用Leadtools时运气很好。您可以使用内置的system.drawing功能与Leadtools和可能的DotImage一起使用。


此外,FreeImage 是一个免费的开源选项。 - xpda

0

我只是在寻找一些基本功能。就像任何绘图软件一样,比如Visio。我不需要像Photoshop那样的功能,只需要一些基础功能来向picturebox添加一些东西,并在需要时能够移动各个部分。 - Rekar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接