Cargar imagen desde Firebird
Estoy usando este código que me facilitaron en otro foro:
Código:
TJPEGImage* __fastcall BlobToJpg(TBlobField *CampoBLOB) Código:
Imagen->Picture->Assign(::BLOBtoJPG(Query->FieldByName("Imagen"))); Código:
Imagen->Picture->Assign(::BLOBtoJPG(Query->FieldByName("Imagen")->Value)); Cita:
Cita:
|
Si fuera yo, definiría el tipo del parámetro CampoBLOB como TField, de manera que no tenga que preocuparme por el code smell del casteo.
- |
Haré la prueba.
|
Cita:
Cita:
|
Dicho de otra forma: ¿Qué habría que poner detrás del FieldByName? Igual que ponemos AsString, AsInteger o AsDateTime, ¿qué se pone en caso de campos BLOB? Porque AsBlob a mi me da error en BCB 6.
|
Cita:
Código:
::BLOBtoJPG((TBlobField*)Query->FieldByName("Imagen")) Cita:
- |
Hola.
Solo como observación, me parece ver un problema de memory leak en esa función... Saludos :) |
Hola de nuevo.
De este modo me funciona bien: Código PHP:
Y si gustas usar streams, Código PHP:
Código PHP:
Saludos :) |
Cita:
Cita:
Cita:
|
Cita:
Código:
TJPEGImage* __fastcall BlobToJpg(TBlobField *CampoBLOB) Cuando solicitas recursos usando VCL es tu responsabilidad liberarlos, Builder C++ no liberará automáticamente la memoria ocupada, aún cuando se trate de variables locales a la función. En ese código no se libera la variable SteramTmp; y lo mas serio es que no se puede liberar la variable JPeg sin dejar inoperante la función. Saludos :) |
Cita:
Verguenza para mí que no lo había pillado en el código inicial. - |
¡Pues no me había dado cuenta! Tenéis razón. El problema es cómo liberar ambas variables ya que el jpeg es lo que devuelve como respuesta la función; no se me ocurre como. Acaso sea mejor sistema el que me sugieres en tu código, invocando en la función tanto el campo blob como el TImage en que ha de situarse; de esa forma se pueden liberar recursos. Voy a probarlo.
|
La franja horaria es GMT +2. Ahora son las 03:58:32. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi