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 

Tamaño maximo de un TBitmap

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Tamaño maximo de un TBitmap Responder citando

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. Very Happy . Agradecería cualquier tipo de ayuda o sugerencia.

Un saludo!!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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 Very Happy. Gracias por la respuesta.
[/code]
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
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.