2012-07-24 17 views
11

Estoy tratando de convertir una imagen de Bitmap a un ícono de Windows. Este es el código.Conversión de mapa de bits en el icono

private void btnCnvrtSave_Click(object sender, EventArgs e) 
{ 
    Bitmap bmp = (Bitmap)picturePanel.BackgroundImage; 
    Bitmap newBmp = new Bitmap(bmp); 
    Bitmap targetBmp = newBmp.Clone(new Rectangle(0, 0, newBmp.Width, newBmp.Height), PixelFormat.Format64bppArgb); 
    IntPtr Hicon = targetBmp.GetHicon(); 
    Icon myIcon = Icon.FromHandle(Hicon); 

    SaveFileDialog sfd = new SaveFileDialog(); 
    sfd.Title = "Save Icon"; 
    sfd.Filter = "Icon|*.ico"; 
    sfd.ShowDialog(); 

    FileStream fileStream = new FileStream(sfd.FileName,FileMode.OpenOrCreate); 
    myIcon.Save(fileStream); 
    fileStream.Flush(); 
    fileStream.Close(); 

    MessageBox.Show("Image is converted successfully!"); 
} 

El código está trabajando muy bien, pero el problema es, al convertir la imagen a un icono en el icono convertida pierde sus verdaderos colores y degradados (se muestra en la imagen). Entonces, ¿hay alguna forma de convertir la imagen sin perder sus colores?

Así es como se ve mi ícono.

Before and after converting

+1

que se parece a la paleta de colores básicos 4bpp. Sin embargo, no tengo idea de por qué lo hace. –

+0

¿Qué tal crear un icono desde el mango? – danish

+5

no sé cómo, vale, intentaré buscar en google.Si tiene algún enlace para un ejemplo ... proporcione. Gracias. – kakarott

Respuesta

Cuestiones relacionadas