es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo creo/edito un archivo PNG en C#?

He escrito un programa que puede crear arte digital. Imágenes como el Conjunto de Mandelbrot y el Conjunto de Julia. Pero estoy buscando guardar estas imágenes como PNGs. Actualmente, en Java, genero las imágenes en una ventana de aplicación y luego tomo una captura de pantalla de la pantalla. Sin embargo, pierdo los detalles más finos de estas imágenes. Además, este método también reduce el tamaño físico de las imágenes. Quiero poder potencialmente hacer un gran póster con estas imágenes.

En C#, estoy usando lo siguiente:

Bitmap myimage = new Bitmap("image.png");

y:

myimage.SetPixel(x,y, Color.FromArgb(255*colors[x,y], 255*colors[x,y], 255*colors[x,y]));

donde colors[,] es algún valor entre 0 y 1.

El código funciona bien, excepto la declaración de Bitmap. Mi entendimiento es que new Bitmap(filepath); te permite editar y manipular la imagen PNG. ¿Tengo razón al pensar eso? ¿Cómo creo/edito un archivo PNG en C#?

(editar) PS: El archivo PNG, “image.png”, existe en la carpeta de solución.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución

    Sí, es correcto pensar que new Bitmap(filepath) te permite editar y manipular la imagen PNG. Para crear un nuevo archivo PNG en C#, puedes utilizar el siguiente código:

    Bitmap image = new Bitmap(width, height, PixelFormat.Format32bppArgb);
    

    Esto crea un nuevo objeto Bitmap con el width y height especificados y el PixelFormat configurado en Format32bppArgb, que es el formato utilizado por las imágenes PNG.

    Para guardar la imagen como un PNG, puedes utilizar el siguiente código:

    image.Save(filename, ImageFormat.Png);
    

    Esto guarda el objeto Bitmap como un archivo PNG con el filename especificado.

    Para editar un archivo PNG existente, puedes utilizar el siguiente código:

    Bitmap image = new Bitmap(filepath);
    // Editar la imagen
    image.Save(filepath, ImageFormat.Png);
    

    Esto abre el archivo PNG existente especificado por filepath, te permite editarlo y luego guarda los cambios en el archivo original.

Comments are closed.