Autor
|
Tema: bmp to ico (Leído 2,741 veces)
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
Alguien sabe como convertir una imagen a formato ico, lo que pasa es que me e trabado al extraer los iconos de un X archivo por ejemplo de un exe, dll, txt (Iconos segun la configuracion e la pc actual en tiempo actual) y posteriormente como es de esperarse mostrarlo en un hdc (en uno de memoria) y guardarlo pero como es de esperarse se guarda en formato BMP...
Uso las apis Extracticon, drawicon, assosiatedicon, yestaba pensando en usar las apis para los recursos de archivos (LoadResource, FindResource, etc ) y de esta forma guardarlo con el cabezar de un formato ico, pero es muy laborioso, ademas que que no cuento con dicha informaciòn
a lo que voy es guardar de un hdco bmp a ico, el icono leido con extractico y dibujado en el ndc con drawico, omo se guardaria entonces, a un formato Valido .ico?
Dulces Lunas
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
LeandroA
|
hola te recomiendo veas este link mirate la clase cFileIcon esta muy buena. algo mas sencillo pero los iconos se ven muy feos Option Explicit Private Declare Function OleCreatePictureIndirect Lib "oleaut32.dll" (pDicDesc As IconType, riid As CLSIdType, ByVal fown As Long, lpUnk As Object) As Long Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long Private Declare Function DestroyIcon Lib "user32.dll" (ByVal hIcon As Long) As Long
Private Type IconType cbSize As Long picType As PictureTypeConstants hIcon As Long End Type
Private Type CLSIdType id(16) As Byte End Type
Private Function ExtractCompatibleIcon(sPathFile As String, IconIndex As Long) As IPictureDisp Dim Unkown As IUnknown Dim Icon As IconType Dim CLSID As CLSIdType Dim hIcon As Long
hIcon = ExtractIcon(0, sPathFile, IconIndex)
With Icon .cbSize = Len(Icon) .picType = vbPicTypeIcon .hIcon = hIcon End With With CLSID .id(8) = &HC0 .id(15) = &H46 End With Call OleCreatePictureIndirect(Icon, CLSID, 1, Unkown) Set ExtractCompatibleIcon = Unkown
DestroyIcon hIcon End Function
Private Sub Form_Load() Me.Picture = ExtractCompatibleIcon("explorer.exe", 1) SavePicture ExtractCompatibleIcon("calc.exe", 0), "C:\calculadora.ico" 'Me.Picture = LoadPicture("C:\calculadora.ico") End Sub
Saludos
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
Muchas gracias no sabia eso de OleCreatePictureIndirect, revisare mejor el cfileicon
Dulces Lunas.!¡
|
|
« Última modificación: 16 Septiembre 2009, 05:01 am por BlackZeroX »
|
En línea
|
The Dark Shadow is my passion.
|
|
|
|
|