FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Grabar Bitmap en un record
Hola a todos. Estoy haciendo una simple agenda utilizando record. Los registros los guardo en un archivo. Me pregunte, si podria almacenar imagenes (en mi caso la cara de la persona). Al correr el programa no protesta al guardar la imagen. El problema es al leer desde el archivo, me da un error como "Access Violation 00000000". Al principio pense que no se podia ya que al guardarlo, lo hace con un formato propio. ¿Es esto asi? De caso contrario como podría hacerlo.
Desde ya muchas gracias |
#2
|
||||
|
||||
Los bitmaps son archivos con formatos predefinidos, es cierto, pero esto no quita que no puedas almacenarlo de la forma que mas te plazca. Ten en cuenta que la longitud del archivo variará considerablemente de un archivo a otro, por lo que si utilizas records de tamaño fijo, es muy posible que en algunos casos falle.
Para manipular la memoria ocupada por un bitmap, te recomiendo estudiar los métodos SaveToStream y LoadFromStream, es la forma mas sencilla y portable de hacerlo. Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
|||
|
|||
Si es una simple agenda, usa una solución simple:
Supongo que cada persona tiene un código, generalmente de 4 bytes. Lo que puedes hacer es guardar en una carpeta los .bmp, o .jpg.. , El nombre del bmp sería el código de la persona en hexadecimal, que ocuparía 8 caracteres para 4 bytes. Es una alternativa buena y que no exige otro campo más en base de datos, pero algo más de programación. No te recomiendo guardar los bmp en records, es información que no sirve para búsquedas y ese tipo de información (que no sirve para búsquedas, no es práctico/posible indexarla y además ocupa un buen espacio) mejor tenerla aparte. Última edición por Amilius fecha: 12-07-2004 a las 17:00:53. |
|
|
|