12 de junio de 2015

Convertir BMP a ICONO - Parte 3

Artículo original: Convert BMP to ICO - Part 3
http://weblogs.foxite.com/vfpimaging/archive/2007/12/10/5448.aspx
Autor: Cesar Ch.
Traducido por: Luis María Guayán


A continuación tiene 4 sencillas maneras de convertir un BMP a ICONO, usando GdiPlusX.

Los 2 envios anteriores en mi blog, fueron antes de que actualicemos la biblioteca, agregandole el soporte de guardar Iconos con buena calidad.

Este ejemplo usa 4 técnicas, y crea 4 versiones de ICONOS desde el mismo archivo de imagen.

Antes de la conversión, se cambia el tamaño a la imagen original al tamaño de 16x16. Esto significa que con este ejemplo puede convertir cualquier archivo de imagen a ICONO.

En la próxima versión, también esperamos entregar una solución completa para archivos .ICO, con el código muy simplificado, ofreciendo un gran soporte para archivos ICO, que no está presente en la versión .NET, gracias a Carlos Alloatti.

IMPORTANTE

Requiere VFP9 y GdiPlusX para funcionar.

¡Por favor asegúrese que tiene la última versión!

http://www.codeplex.com/VFPX/Wiki/View.aspx?title=GDIPlusX&referringTitle=Home

Do Locfile("system.prg")

With _Screen.System.Drawing As xfcDrawing 
    * Convertir el bitmap original para garantizar una mejor calidad y compatibilidad
    loResized = .Bitmap.New(.Bitmap.FromFile(Getpict()), 16,16)

    * Crear el objeto Icon
    Local loIcon As xfcIcon
    loIcon = .Icon.FromHandle(loResized.GetHicon())

    *** ICONOS DE BAJA CALIDAD

    * Guardar el archivo
    loIcon.Save("c:\Icon_Save_FileName_LowQual.ico")

    * Guardar usando Stream
    Local loStream As xfcMemoryStream
    loStream = _Screen.System.IO.MemoryStream.New()

    loIcon.Save(loStream)
    Strtofile(loStream.GetBuffer(), "c:\Icon_Save_Stream_LowQual.Ico")


    *** ICONOS DE ALTA CALIDAD
    *** Configurar el parámetro tlQuality a .T.

    * Guardar el archivo
    loIcon.Save("c:\Icon_Save_FileName_HighQual.ico", .T.)

    * Guardar usando Stream
    Local loStream2 As xfcMemoryStream
    loStream2 = _Screen.System.IO.MemoryStream.New()

    loIcon.Save(loStream2, .T.)
    Strtofile(loStream2.GetBuffer(), "c:\Icon_Save_Stream_HighQual.Ico")

Endwith

No hay comentarios. :

Publicar un comentario