loadpicture de variable con contenido del archivo ¿como?

Iniciado por SERBice, 16 Mayo 2008, 12:45 PM

0 Miembros y 2 Visitantes están viendo este tema.

SERBice

si yo abro un archivo determinado, en el cual tngo X cantidad de imagenes y se en qeu posicion esta cada una (cada archivo), leo una imagen (meto el archivo en un string).

la pregunta es ¿como hago uso de loadpicture() para cargar ese string? ¿hay un equivalente a loadpicture()?

seba123neo

Hola,no entiendo cuando decis que abris un arhcivo con imagenes,¿que archivo contiene imagenes dentro?

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

SERBice

eso no importa.

ejemplo:

archivo "muchos.x", en ese archivo hay 3 archivos 1.jpg,2.jpg,3.jpg.

yo leo muchos.x y meto en un string 2.jpg.

yo necesito con loadpicture o alguna funcion equivalente poder cargar el archivo qeu tngo en la variable sin tener que escribir el archivo en disco (dado que podria escribir el archivo, leerlo y borrarlo, pro eso es una perdida de tiempo/rendimiento y no es correcto, debe haber una forma de cargarlo desde memoria, pero no la se)

Tughack

En una string?? Eso, ademas de no ser posible seria mala programacion.

Tienes 2 opciones:

Lo mas facil cargar tu archvo en un Buffer() (byte array), separarlo en imagenes y crear los archivos en disco. Luego puedes usar LoadPicture.

Lo mas dificil seria usar la estructura BITMAP, cargar cada buffer de cada imagen en esa estructura y despues crear un hDC y cargarlo en la picturebox.

http://msdn.microsoft.com/en-us/library/ms532298(VS.85).aspx

Saludos

SERBice

pus, lo de 3 imagenes era un ejemplo, estamos hablando de cerca de 2000 objetos (imagenes), quizas más y el "desempaquetar" y grabar en disco para luego borrarlo es una tarea que demanda demasiado tiempo.

otra inquietud: en caso de guardar cada archivo en disco (cuando sea necesario usarlo, caso contrario estarán en un String Array -Archivo(3) as string-), como se cuando ya se ha cargado para borrarlo. ¿LoadPicture no devuelve el foco hasta qe se carga o debo hacer alguna comprobacion para no borrarlo mientras LoadPicture lo est usando?

Tughack

Cita de: SERBice en 16 Mayo 2008, 15:01 PM
pus, lo de 3 imagenes era un ejemplo, estamos hablando de cerca de 2000 objetos (imagenes), quizas más y el "desempaquetar" y grabar en disco para luego borrarlo es una tarea que demanda demasiado tiempo.

otra inquietud: en caso de guardar cada archivo en disco (cuando sea necesario usarlo, caso contrario estarán en un String Array -Archivo(3) as string-), como se cuando ya se ha cargado para borrarlo. ¿LoadPicture no devuelve el foco hasta qe se carga o debo hacer alguna comprobacion para no borrarlo mientras LoadPicture lo est usando?

Mas una vez, usa byte array, string array es feo (para no entrar en detalles) xD

Simplemente hace LoadPicture y en seguida DeleteFile (o Kill en vb...).

Espera, kieres hacer un captcha breaker? Si es asi tengo un metodo k te se aplica mejor k cargar imagenes.

Saludos

SERBice

array byts, vale, eso me da lo mismo, no me importa (hare lo que sea mejor llegado el caso, aqui trato de averiguar la carga de imagenes contenidas en variables).

lo que se quiere hacer es "empaquetar" en un solo archivo imagenes de un video juego para que el usuario no las modifique.

Por el motivo del rendimiento escritura/lectura en disco (dado q son muchos archvos y se cnosultan bastante seguido) y por el motivo de "seguridad" (no quro qeu el usuario vea que se estan creando los graficos en disco para usarse) es que deseo cargar desde memoria luego de "desempaquetar/descifrar" el archivo en cuestion en la misma.

Tughack

Cita de: SERBice en 16 Mayo 2008, 15:13 PM
array byts, vale, eso me da lo mismo, no me importa (hare lo que sea mejor llegado el caso, aqui trato de averiguar la carga de imagenes contenidas en variables).

lo que se quiere hacer es "empaquetar" en un solo archivo imagenes de un video juego para que el usuario no las modifique.

Por el motivo del rendimiento escritura/lectura en disco (dado q son muchos archvos y se cnosultan bastante seguido) y por el motivo de "seguridad" (no quro qeu el usuario vea que se estan creando los graficos en disco para usarse) es que deseo cargar desde memoria luego de "desempaquetar/descifrar" el archivo en cuestion en la misma.

En ese caso, no los estraeas al disco, usa las estruturas bitmap.

SERBice

aja... claro claro...

pero no se como hacerlo, por eso pregunto.

no pido que me hagan las cosas, pero un ejemplo se agradeceria mucho.

desde ya muchas gracias por tu tiempo.

Tughack

Cita de: SERBice en 16 Mayo 2008, 15:21 PM
aja... claro claro...

pero no se como hacerlo, por eso pregunto.

no pido que me hagan las cosas, pero un ejemplo se agradeceria mucho.

desde ya muchas gracias por tu tiempo.

Pues yo tampoco se como hacerlo pork nunca lo hice. Pero como dice es cuestion de usar conceptos de programacion y leer la MSDN acerca de las estruturas bitmap y apis para manejar bitmaps. Kualkier uno k sepa los conceptos y sepa leer, puede hacerlo.