| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
loncio Cdt

Registrado: 04 Feb 2005Mensajes: 13
|
Publicado: Lun 23 May, 2005 8:48 am Asunto: Tamaño maximo de un TBitmap |
|
|
Hola
Estoy creando un aplicación que dibuja lineas de montajes, y para ello creo un bitmap, que luego pego en una TImage. El problema es que el dibujo creado, a veces necesita de una gran longitud (para ello puse unas barras de desplazamiento) pero no me deja hacer un bitmap mayor que unos 2000 pixels de ancho, por lo que el dibujo queda cortado.
Además si sobrepaso el límite me da error de que no hay suficiente memoria, y no se muy bien si es por ser demasiado grande el tamaño del bitmap, o bien, por ser demasiado grande el tamaño del TImage, que redimensiono para pegar el Tbitmap.
Seguro que hay una forma mas adecuada de hacer esto, pero es que soy medio novatillo. . Agradecería cualquier tipo de ayuda o sugerencia.
Un saludo!!! |
|
| Volver arriba |
|
 |
mopa Cmdr

Registrado: 29 Jun 2004Mensajes: 145
|
Publicado: Lun 23 May, 2005 8:57 am Asunto: |
|
|
hola,
Creo que la unica limitacion que puede haber con el TBitmap es de memoria en el caso de bitmaps gigantes, ya que todo se carga n memoria y el equipo se queda ko, pero que yo sepa no deberias tener ningun limitacion en pixels, por lo menos a mi no me ha pasado.
Quizas haya algo mal, o tengas que optimizar un poco mas la forma de hacerlo.
Si eres un poco mas especifico, o pones algo de codigo igual alguien te pueda ayudar mejor.
Un saludo.
mopa |
|
| Volver arriba |
|
 |
loncio Cdt

Registrado: 04 Feb 2005Mensajes: 13
|
Publicado: Lun 23 May, 2005 9:06 am Asunto: |
|
|
| Código: | ImagenBitmap=new Graphics::TBitmap;
ImagenBitmap->Height=2000;//NumeroMaximoPorNivel*90;
ImagenBitmap->Width=2000;//nivel*200;
// ImagenGrafico es un TImage
ImagenGrafico->Height=ImagenBitmap->Height;
ImagenGrafico->Width=ImagenBitmap->Width;
// Aqui vendria el codigo para hacer el dibujo sobre el canvas del TBitmap
/* Y aqui es cuando lo pego. Cuando pongo limites muy altos (2500, 3000) en el TBitmap, me da error en la linea siguiente, en la que pego el Bitmap al Timage*/
ImagenGrafico->Canvas->Draw(0,0,ImagenBitmap);
delete ImagenBitmap; |
Lo curioso, es que a veces me pasa y otras veces no. Y eso me da que pensar que hago algo mal . Gracias por la respuesta.
[/code] |
|
| Volver arriba |
|
 |
mopa Cmdr

Registrado: 29 Jun 2004Mensajes: 145
|
Publicado: Mar 24 May, 2005 1:37 pm Asunto: |
|
|
No puedo probar el codigo ahora mismo, pero asi por encima te podria comentar algo:
¿porque no utilizas los metodos usuales del TImage para cargar el bitmap? No hace falta que lo dibujes en el canvas.
El Timage tiene tambien un bitmap, con los metodos LoadFromFile, loadFromStream.. e incluso creo recordar que Assing, por lo que bastaria con utilizar uno de estos metodos para cargar tu bmp en el timage de una manera segura sin tocar el canvas.
Un saludo
mopa |
|
| Volver arriba |
|
 |
Perico Invitado
|
Publicado: Mar 24 May, 2005 1:46 pm Asunto: |
|
|
Hola
Creo que lo que pasa es que el tamaño del bitmap es demasiado grande como para ser soportado por los recusos de tu ordenador.
A mi me pasa también y me sale el tipico "out of resources"...
ahora que siga otro que sepa como arreglarlo
Un saludo |
|
| Volver arriba |
|
 |
loncio Cdt

Registrado: 04 Feb 2005Mensajes: 13
|
Publicado: Mie 25 May, 2005 11:17 am Asunto: |
|
|
Gracias por las repsuestas. Volvi a probar con un tamaño mayor y ahora no me da error, y ya van varias veces que lo pruebo. No se donde podria estar el fallo. De todas formas, me han servido de ayuda vuestras indicaciones de como hacerlo de una forma mas eficiente.
Gracias!! |
|
| Volver arriba |
|
 |
|