Trabajando en Visual Studio 2008. Estoy tratando de dibujar en una imagen PNG y guardar esa imagen nuevamente.Problema con imágenes PNG en C#
hago lo siguiente:
private Image img = Image.FromFile("file.png");
private Graphics newGraphics;
Y en el constructor:
newGraphics = Graphics.FromImage(img);
La construcción de la solución da ningún error. Cuando trato de ejecutarlo, me sale esto:
un objeto gráfico no se puede crear de una imagen que tiene un formato de píxeles indexada.
No tengo mucha experiencia con el uso de imágenes en C#. ¿Qué significa esto y cómo puedo remediar esto?
EDITAR: a través de la depuración, Visual Studio me dice que la imagen tiene un format8bppindexed
Formato de píxel.
Entonces, si no puedo usar la clase Graphics, ¿qué debo usar?
EDIT2: Después de leer this, creo que es seguro suponer que mejor me quedo con los archivos JPG cuando trabajo con GDI +, ¿no?
Edit3: mis utilizando enunciados:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;
Ha habido suerte con este método? http://www.c-sharpcorner.com/UploadFile/rrraman/graphicsObject08232007102733AM/graphicsObject.aspx – Greg
Utilizo archivos PNG con el objeto Graphics todo el tiempo. Publique un enlace al archivo PNG que está utilizando, y veremos qué le pasa. – MusiGenesis
Internamente GDI funciona con mapas de bits, JPG está comprimido y no es realmente genial tener una imagen comprimida para trabajar con los datos sin formato. Su imagen es 8bppIndexed, este es un formato de mapa de bits donde los colores se almacenan en la paleta, no los datos de píxeles. Los objetos Graphics no pueden modificar los valores de píxeles directamente, ya que eso no lo cambiará. Necesita convertirlo a 24bppRGB – badbod99