por Cesar Cassiano Schimanco

Fundo transparente fica preto ao converter PNG para JPG - C#

O System.Drawing.Graphics deixa a imagem com preto ao converter um PNG com transparência para Jpeg. Isso acontece porque o Jpeg não tem transparência e o System.Drawing.Graphics preenche a imagem com preto. Então a alternativa é escolher a cor de preenchimento do JPG, já que ele não tem transparência.

Abaixo um exemplo de preenchimento da imagem com branco.

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class image : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //carregando a imagem PNG de exemplo
        using (Bitmap img = new Bitmap(MapPath("~/imagem.png")))
        {
            //utilizar o System.Drawing.Graphics para desenhar a imagem
            using (Graphics g = Graphics.FromImage(new Bitmap(img.Width, img.Height)))
            {
                //Preencher com branco
                g.Clear(Color.White);
                //Desenhar imagem
                g.DrawImage(img, new Point(0, 0));
            }

            //Salvar a imagem no formato JPG
            img.Save(MapPath("~/imagem.jpg"), ImageFormat.Jpeg);
        }
    }
}

Caso você não precise utilizar o System.Drawing.Graphics utilize o exemplo abaixo.
 

Converter imagem PNG para JPG sem System.Drawing.Graphics

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class image : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //carregando a imagem PNG de exemplo
        using (Bitmap img = new Bitmap(MapPath("~/imagem.png")))
        {
            //Salvar a imagem no formato JPG
            img.Save(MapPath("~/imagem.jpg"), ImageFormat.Jpeg);
        }
    }
}

 

Resumo:

Neste artigo vimos um exemplo que mostra como escolher a cor de preenchimento do JPG ao converter um PNG com transparência utilizando o System.Drawing.Graphics e um exemplo sem ele.

Comentários

Carregando comentários

Postar um novo comentário



Processando...