Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Cargar una imagen GIF o JPEG en un TImage usando el API

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Tips & Tricks
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Cargar una imagen GIF o JPEG en un TImage usando el API Responder citando

Esta función sirve para cargar una imagen GIF/JPEG en un TImage en cualquier versión de C++Builder.

- Añadimos: #include<olectl.h>

Código:
void CargarImagen(
    TImage *imagen,        // puntero al TImage donde cargaremos la imagen
    String nombreFichero)  // ruta del fichero a cargar
{
    // Formatos: BMP, GIF, JPG, ICO, EMF, WMF

    const int HIMETRIC_INCH   = 2540;
    IPicture *pPicture = NULL;

    OleLoadPicturePath( StringToOleStr(nombreFichero),
        NULL, 0, 0, IID_IPicture, (void**)&pPicture);

    // Carga la imagen en el TImage
    if (pPicture)
    {
        imagen->Picture = NULL;
        long ancho, alto;
        pPicture->get_Width(&ancho);
        pPicture->get_Height(&alto);
        imagen->Picture->Bitmap->Width = MulDiv(ancho,
            GetDeviceCaps(imagen->Canvas->Handle, LOGPIXELSX), HIMETRIC_INCH);
        imagen->Picture->Bitmap->Height = MulDiv(alto,
            GetDeviceCaps(imagen->Canvas->Handle, LOGPIXELSY), HIMETRIC_INCH);
        RECT rect = imagen->ClientRect;
        pPicture->Render(imagen->Canvas->Handle, 0, 0,
            imagen->Picture->Bitmap->Width, imagen->Picture->Bitmap->Height,
            0, alto, ancho, -alto, &rect);
        pPicture->Release();
    }
}


Y para probarla podemos añadir a nuestro Form un TImage (Image1) con la propiedad AutoSize a true, un TButton (Button1) y en su evento OnClick el código siguiente:

    CargarImagen(Image1, "c:\\nuestroDir\\nuestraImagen.gif");

Tambien podemos pasarle como segundo argumento un enlace:

    CargarImagen(Image1, "http://cppbuilder.hypermart.net/leo.gif");


Yo lo he probado usando BCB1 y BCB6 en Windows 2000 y Windows XP. Otros compañeros lo ha probado en Windows 98SE y Windows ME. Si alguien lo prueba en otras versiones que lo comente por favor, gracias.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Hola, estoy muy interesado en tu función pues tengo un componente que abre gif, pero estos parpadean demasiado cuando hay varios abiertos.

He probado tu funcion y me dice que no encuentra la funcion "OleLoadPicturePath();" me puedes decir donde se encuentra esta funcion.

Gracias Rolling Eyes
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Movimiento de los gifs LEOOOOO! AYUUUUUUUDAME! Responder citando

Gracias Leo por este trocito de programa que es de gran utilidad, pero mi duda es que los gifs no se mueven, he colocado el trozo de programa tal y como tu lo dices, el gif me aparece, pero no se me mueve, lo necesito rapido, por favor contesta rapido, ya que tengo que entregar un proyecto el lunes.


GRACIAS Razz Razz Razz
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Re: Cargar una imagen GIF o JPEG en un TImage usando el API Responder citando

GRACIAS LEO HE TRATADO DE INVESTIGAR COMO PERO NUNCA PUDE
SOY UN NOVATO Y QUISIERA SER UN DISIPULO.

TENGO MUCHO INTERES Y SOY HABIL PARA ENTENDER Y COMPRENDER.

SI ME ACEPTAS COMO TU DISIPULO. TE LO AGRADECERE.
_________________
PROBLEMAS CON ANGULOS., QUISIERA HACER UN JUEGOS DONDE REBOTA UNA PELOTA DEPENDIENDO EL ANGULO DE REBOTE.

COMO SE HACE, TENGO QUE VALIDAR CADA UNA DE LAS COORDENADAS E INVERTIRLAS
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: gif animados Responder citando

leo esa funcion que publicaste para cargar un gif anda perfecto pero la imagen no se mueve, es decir queda estatica, no se si me falta agregar alguna propiedad para que se mueva el gif
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

me parece que para esto requerirás un componente mas específico que carge gifs animados.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: nomme funciona esta funcion! Responder citando

Hola, quisiera usar esta funcion para cargar una imagen JPEG
o JPG pero no me funciona alguien sabe porque??

sigo el ejemplo de _leo pero no funciona!"!!



De antemano gracias.

Regards,
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: No!! Responder citando

Hola,

No me funciona la uncion con JPG por favor ayuda....

Saludos.

PD: Uso C++Builder 6.0

Bye.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Esta rutina es útil más que nada para cargar imágenes GIF (no animados) sin instalar ninguna librería extra (aunque no funciona en todas las versiones de Windows).

El Builder permite usar imágenes JPEG sin necesidad de esta rutina. Suponiendo que tengas un TImage, solo tendrías que hacer lo siguiente:

#include <jpeg.hpp>

Image1->Picture->LoadFromFile("C:\\miDir\\miImagen.jpg");
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Gracdias Responder citando

_Leo, como siempre mil gracias.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Todo Ok Responder citando

Gacias leo, resulta impeque
Volver arriba
Ver perfil de usuario Enviar mensaje privado Yahoo Messenger MSN Messenger
Mensaje    Asunto: Responder citando

Con Builder 5 y Windows NT o Windows 98 funciona perfectamente.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Huyy de la q me salvo _Leo, Gracias!
El codigo me cayo de pelos.
_________________
><(((((º> From °l||l° §ÂN ÅNЮ€$ i§Lã$ °l||l°
_____________________
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

funcionando en B6 y Win7
Gracias _leo nuevamente.
_________________
><(((((º> From °l||l° §ÂN ÅNЮ€$ i§Lã$ °l||l°
_____________________
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.