elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [SOLUCIONADO] Problema al convertir Bitmap a Ico
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO] Problema al convertir Bitmap a Ico  (Leído 2,516 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
[SOLUCIONADO] Problema al convertir Bitmap a Ico
« en: 18 Julio 2013, 06:57 am »

Estoy intentando convertir un Bitmap al tipo de imágen Icono (ICO), para guardar esa imágen al disco en formato ICO, pero el resultado que obtengo es un archivo PNG con la extensión modificada a ICO.

¿Porque la Class ImageFormat me guarda la imagen en formato PNG cuando le estoy indicando que me guarde el archivo en formato ICO?.

No conozco otra manera de de guardar una imágen al disco (sin usar librerías o aplicaciones d terceros), ¿Como resuelvo esto?.

¿Acaso hay algo mal en el code?

Esta es la manera en la que estoy usando mi code:
Código
  1. Save_Icon(Resize_Image(Bitmap.FromFile(PictureBox_Regedit.Tag), "Regedit.ico")

Y esto es el resto del code:
Código
  1. Private Sub Save_Icon(ByVal Source As Bitmap, ByVal Filename As String)
  2.  
  3.    Try
  4.        If Not Directory.Exists(AppDir) Then Directory.CreateDirectory(AppDir)
  5.        If Not Directory.Exists(AppIcons) Then Directory.CreateDirectory(AppIcons)
  6.        Source.MakeTransparent()
  7.        Source.Save(Path.Combine(AppIcons, Filename), ImageFormat.Icon)
  8.    Catch ex As Exception
  9.        Throw New Exception(ex.Message)
  10.    End Try
  11.  
  12. End Sub
  13.  
  14. Private Function Resize_Image(ByVal img As Image, ByVal Width As Int32, ByVal Height As Int32) As Bitmap
  15.    Dim Bitmap_Source As New Bitmap(img)
  16.    Dim Bitmap_Dest As New Bitmap(CInt(24), CInt(24))
  17.    Dim Graphic As Graphics = Graphics.FromImage(Bitmap_Dest)
  18.    Graphic.DrawImage(Bitmap_Source, 0, 0, Bitmap_Dest.Width + 1, Bitmap_Dest.Height + 1)
  19.    Return Bitmap_Dest
  20. End Function

EDITO: El problema sucede tanto usando "maketransparent" como sin usarlo.


« Última modificación: 19 Julio 2013, 22:12 pm por EleKtro H@cker » En línea



Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Problema al convertir Bitmap a Ico
« Respuesta #1 en: 19 Julio 2013, 22:12 pm »

Después de hacer un largo research por Google para buscar la mejor manera de este tipo de conversión, me he dado cuenta que el formato ICO en .NET solo son problemas y es casi imposible hablar de ICO + Transparencia en las Classes del framework, y después de pelear mucho con la librería FreeImage, al final he optado por usar un wrapper de esta lib para .NET, y aquí está el code que hice de prueba, funciona:

Código
  1. Imports FreeImageAPI
  2.  
  3. 'Dim img As FreeImageAPI.FIBITMAP = FreeImage.Load(format, file, FREE_IMAGE_LOAD_FLAGS.ICO_MAKEALPHA)
  4.  
  5. Public Class Form1
  6.  
  7. Dim file As String = "C:\Users\Administrador.ELEKTRO-PC\Desktop\auricular 5.png"
  8.  
  9. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Shown
  10.  
  11.    Dim format As FreeImageAPI.FREE_IMAGE_FORMAT = FreeImage.GetFileType(file, 32)
  12.  
  13.    Dim img As FreeImageAPI.FIBITMAP = FreeImage.LoadEx(file)
  14.  
  15.    Dim Transparency As Byte() = New Byte(0) {}
  16.  
  17.    FreeImage.SetTransparencyTable(img, Transparency)
  18.  
  19.    FreeImage.Save(FREE_IMAGE_FORMAT.FIF_ICO, img, "c:\test.ico", FREE_IMAGE_SAVE_FLAGS.DEFAULT)
  20.  
  21. End Sub
  22.  
  23. End Class


« Última modificación: 19 Julio 2013, 22:14 pm por EleKtro H@cker » En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problema al convertir archivo mpeg
Multimedia
ivan5114 4 2,314 Último mensaje 3 Marzo 2006, 18:07 pm
por ivan5114
Dividir un bitmap
.NET (C#, VB.NET, ASP)
David Vans 0 3,021 Último mensaje 25 Mayo 2008, 19:37 pm
por David Vans
¿Cual estructura interna de un BitMap?
Diseño Gráfico
do-while 0 5,456 Último mensaje 8 Febrero 2010, 11:35 am
por do-while
Cargar Bitmap como fondo de Dialog Box (help )
Programación C/C++
codeliber 1 2,197 Último mensaje 18 Mayo 2010, 16:29 pm
por codeliber
problema al convertir de VB.net a C#
.NET (C#, VB.NET, ASP)
evicar 0 2,303 Último mensaje 23 Diciembre 2011, 02:35 am
por evicar
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines