2010-09-04 25 views
8

¿Cuáles son algunas buenas bibliotecas de imágenes para C#? Principalmente para cosas como pintar en capas. ¿O tal vez un recurso que puede describir tareas similares?.NET Image Libraries

+0

¿Estás hablando de * imágenes * o de librerías de dibujo? El espacio de nombres de System.Drawing debería tener suficiente para comenzar (usando GDI). – TheCloudlessSky

+0

Bibliotecas de imágenes, para agregar principalmente imágenes a un cuadro de imagen, o control personalizado, y hacer que cada imagen sea propia, de modo que pueda manipularse por separado. – Rekar

+0

¿Le importa en qué idioma está escrita la biblioteca, siempre que pueda usarla desde C#? –

Respuesta

4

Con 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; 
} 

En el ejemplo anterior, un método, GetLayeredImage() se define que acepta la anchura/altura de la imagen compuesta , junto con una matriz de objetos Image, uno para cada capa. Un punto en (0,0) se define como la posición superior izquierda para cada capa. Se crea un objeto Bitmap y a partir de este se crea un objeto Graphics para dibujar en el mapa de bits. Cada imagen de la matriz se dibuja en el mapa de bits en el punto (0,0); es posible que desee cambiar esto creando un valor Point diferente para cada capa. El mapa de bits resultante se devuelve. El valor de retorno es una imagen con todas las capas dibujadas.

He aquí un ejemplo de cómo llamar a este método:

Image layer1 = Image.FromFile("layer1.jpg"); 
Image layer2 = Image.FromFile("layer2.jpg"); 
Image layeredImg = GetLayeredImage(width,height,layer1,layer2); 
pictureBox.Image = layeredImg; 
+0

¿Podría explicar usando los dibujos/gráficos que ya están en .NET para crear capas que puedan cambiarse para permitir el movimiento de imágenes basadas en la capa? – Rekar

+1

Agregué información sobre GIF animados. –

+0

Hmm, no es exactamente lo que quise decir. No me refería a las imágenes animadas cuando me refería al movimiento. En realidad, quería decir la posición de la imagen que permite moverse separados por capas, al igual que paint.net, pero de una forma mucho más simple. – Rekar

0

He utilizado la herramienta de terceros llamado LeadTools Imaging SDK Pro con gran éxito.

http://www.leadtools.com/sdk/image-processing/default.htm

Por lo general, nada como la funcionalidad Paint.Net se obtendrá por medio de software de terceros o una gran cantidad de codificación de su parte.

+0

Solo estoy buscando alguna funcionalidad básica. Al igual que cualquier software de diagramación, como Visio, por ejemplo. No necesito las características de photoshop, solo algunos conceptos básicos para agregar algunas cosas a un cuadro de imagen, y ser capaz de mover las piezas individuales cuando sea necesario. – Rekar

0

Leadtools y Atalasoft DotImage son ambos bastante buenos. He tenido buena suerte con Leadtools. Puede usar las características del sistema incorporado.drawing con Leadtools y probablemente con DotImage.

+0

Además, FreeImage es una opción de código abierto gratuita. – xpda

+0

La URL es [FreeImage] (http://freeimage.sourceforge.net/). –