Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Thumbail

Iniciado por rubenmislata, 04 de Diciembre de 2006, 06:18:24 PM

« anterior - próximo »

rubenmislata

Hola! Quiero saber como puedo cargar una imágen en memoria pero con menos resolución que la original.

Mi problema es que kiero mostrar todas las imagenes de un directorio, como hace XP, pero cargar todas las imagenes en memoria con el tamaño original no es posible xq no hay memoria suficiente. Una solución podría ser cargar las imágenes en memoria en baja resolución (que no se si es posible con esta libreria) o crear una carpeta de thumbails (creo q se llaman así) donde esten las imagenes pequeñas.

¿Como puedo hacer alguna de las dos cosas?

[EX3]

Hombre, en verdad seria posible pero la libreria no lo permite tal cual. Me refiero, la funcion interna que utiliza dx_lib32 para cargar texturas en memoria pide dos parametros que representan el ancho y el alto, en potencia de 2 (16, 32, 64, 128, 256...), de la textura en memoria. dx_lib32 directamente asigna el tamaño que mas se adecua al tamaño original de la textura a cargar.

La unica solucion que se me ocurre es un poco 'pesada' y seria hacer un proceso que cargara la imagen como una superficie, crear una superficie con un tamaño reducido del original, copiar el original en la nueva superficie reescalando su tamaño con SURF_AdvCopyRects() y salvarla en disco con SURF_Save(). La unica pega es que SURF_Save() solo guarda en formato BMP. Como veras, el proceso para un par de imagenes no seria mucho problema, pero si deseas hacer un reescalado de una carpeta completa de 'tropecientas' imagenes ten en cuenta que este proceso demoraria demasiado al programa (y mas siendo Visual Basic 6.0 :?)

Para temas de thumbnails te recomiendo la libreria GFL SDK que encontraras en la seccion de enlaces de la web de dx_lib32. Esta recuerdo que tenia funciones especificas para cargar imagenes reducidas para creacion y presentacion de thumbnails.

La verdad, aunque la libreria no estaba pensado para ello, no veo mala idea el implementar una funcion que permita especificar el alto y el ancho con el que se almacenara la textura en memoria, asi que me lo apunto para una proxima revision de la libreria, quizas hasta yo le acabe sacando utilidad y todo ;)

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.