FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
TImage, me da problemas al cargar grandes imagenes.
Ya estoy con el cerebro en las manos, no logro que un TImage haga algo tan sencillo como esto:
No se como solucionarlo, me da un problema de Espacio de almacenamiento insuficiente... |
#3
|
||||
|
||||
Estoy usando 3970x4600x[pf8bit]
El asunto es que con un TPaintBox no me da esos problemas, pero tengo que estar redibujandolo para que no se borre la imagen cargada en el. Por otra parte, cosas como MS Paint, ese que biene en todos los Windows no da dramas. Solo quiero cargar una imagen grande (un mapa). |
#4
|
||||
|
||||
Otro dato es que he descubierto que el problema ocurre al usar el Canvas, ya que que LoadFromFile funciona bien. AYUDA!!!!
|
#5
|
||||
|
||||
Canvas.PixelFormat := pf8bit;
[Error] Unit1.pas(): Undeclared identifier: 'PixelFormat' [Fatal Error] Project1.dpr(): Could not compile used unit 'Unit1.pas' |
#6
|
||||
|
||||
Gracias cHackAll, lo probare. De todos modos ¿conoces algun componente similar que tenga TCanvas.Handle de tipo HDC?
|
#7
|
||||
|
||||
No amigo, solo queria mostrarte mi "teoria" ... al manipular el cavas de una imagen aunque esta sea monocroma va a usar 32 bits por pixel.Pues hay muchos, aunque el "HDC" es un valor entero, el manejador retornado por wl SO al crear un Canvas, cualquier componente llegará a lo mismo.
|
#8
|
||||
|
||||
cHackAll, gracias de todos modos, me he dado por vencido...
Usare el LoadFrom aunque ello implica consumir 72MB de recurso. Pronto dare unos metodos que permiten cargar una gran imagen en memoria consumiendo solo un máximo de 300kb. Es un método que accidentalmente descubrí jeje!!. Bueno, probe de todo incluso GDI+, pero se me acaba el tiempo y debo terminar el trabajo. |
#9
|
||||
|
||||
Hola
la pregunta... ¿Cual es el método mágico? Ya que yo quiero trabajar con imágenes grandes. Saludos! |
#10
|
||||
|
||||
El mismo que utilizaste. Ir cargando porciones de la imagen completa y "pegandolas", las otras las vas liberando, de ese modo el consumo de memoria en mi caso no supero los 400kb en una imagen de 5000x5000.
Pero el sistema a veces funcionaba otras no, nunca descubrí el porque, siempre me daba "Espacio insuficiente de almacenamiento para procesar este comando...". Solo me funcionaba en forma segura si no pasaba de los 3000x3000. |
#11
|
||||
|
||||
Hola
Aver, creo que andas equivocado, por que yo lo que hago es lo siguiente: primero creo el Timage de X cantidad de pixeles, luego ir uniendo trozo por trozo, he creado imágenes grandes, pero necesito saber como crear de unos 60000 por 60000 px, como ves el tuyo de 3000 no se le acerca, esas de 3000 y más las puedo crear sin problemas, y tampoco puedes decir que vas creando y liberando la memória, por que en ese caso, el resutado sería solamente un trozo, osea el último, ya que lo que hacemos es ir añadiendo un trozo al Timage y este mismo lo guarda en memória, luego otro, etc y al final todo _junto_ se guarda en una sola imágen. Saludos! |
#12
|
||||
|
||||
Cada imagen es de 510x500 pixeles, Las dimensiones del TImage las dejo definidas desde un principio y dentro de un ScrollBox. El consumo máximo de memoria no supera los 500kb para una imagen de 5100x5000 en este caso. Última edición por MAXIUM fecha: 11-03-2009 a las 17:32:10. |
#13
|
||||
|
||||
Hola
Mira, yo tengo una imágen creada de 3800 px X 3800px y sin usar lo que tu dices, tarda un poco en unirla, pero con un progress bar y un thread se soluciona, además yo no tengo imágenes definidas, eso lo hace el usuario, osea que no podría hacer lo del array, aunque podría emplear los arrays dinámicos, pero de igual forma tendría problemas con los nombres de las imágenes, etc, y para que hacer esto si como lo hago me funciona a la perfección, pero repetiré otra ves, necesito imágenes GRANDES, de 60000px de ancho y lado, y como te digo, mis 3800 y tus 3000 no me sirven de mucho De todas formas muchas gracias por los datos, pero ahí en tu código en el Image1 es donde quisiera crearlo de ~60000px Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Cargar Imagenes grandes en un Timage Rapidamente | angelmsf | Gráficos | 2 | 27-08-2008 03:35:04 |
Duda Arranque Web con Imágenes grandes | Deiv | HTML, Javascript y otros | 4 | 26-12-2007 17:03:48 |
Imagenes mas grandes en un TreeView | hmrvivas | OOP | 1 | 13-07-2007 06:02:43 |
Visualizar imagenes grandes | fjcg02 | Gráficos | 2 | 20-11-2006 16:33:36 |
cargar diferentes imagenes en un TImage | huevozen | C++ Builder | 3 | 27-07-2006 09:37:17 |
|