FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Obtener info de un fichero JPG
Como puedo obtener información de un fichero de imagen JPG.
El problema es que a veces un usuario intenta cargarme una imagen JPG de 32 bits de profundidad de colores y el TImage de Builder no lo acepta con el consecuente error y salida del programa. También he intentado proteger el código que abre el cuadro de dialogo de las imágenes para controlar el error y responder con un mensaje al usuario, pero da la casualidad que se comete el error y el programa sigue sin ir al Catch(...) del try{}. He buscado por todo el foro y en Google, pero sigo sin saber como obtengo esa información. De ya muchas gracias. Aunque el mi código está en C++, si alguien me puede ayudar en Delphi, yo ya pasaría la función a C++. Código: Código PHP:
Última edición por ecfisa fecha: 19-03-2015 a las 20:04:43. Razón: etiquetas |
#2
|
||||
|
||||
jesusgandia1966,
¡Bienvenido al Club Delphi! Te sugiero revisar la Guía de estilo de los foros, recomendada a todos los nuevos ingresos al Club Delphi. ¡Gracias por tu cooperación! Saludos, Nelson. |
#3
|
||||
|
||||
Hola jesusgandia1966.
Revisa este enlace: Getting JPEG resolution without decoding the image Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#4
|
|||
|
|||
El enlace que sugieres, muestra información sobre la cabecera de fichero JPG, pero no me dice si el fichero está guardado con 8, 16, 24 o 32 bits de profundidad de color.
Ya miré en todo el foro y no encontré respuesta. |
#5
|
|||
|
|||
Ok
Esto Es Lo Que Quiero Obtener:
|
#6
|
||||
|
||||
Haz una búsqueda por EXIF.
De todas formas, dices que el problema es que no puedes mostrar imágenes de 32 bits en un TImage, ¿es eso? |
#7
|
|||
|
|||
NO, NO ES ESO. Abrir un JPG de 32 bits de color en un TImage no es lo que quiero.
El problema es que antes de abrir o cargar el fichero, quiero detectar si es de 32 bits o de 24 bits. |
#8
|
||||
|
||||
#9
|
||||
|
||||
Hola jesusgandia1966
Cita:
La función que presentan en el segundo mensaje, devuelve la profundidad del color en el parámetro BitDepth. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#10
|
||||
|
||||
|
#11
|
|||
|
|||
Gracias tienes toda la razón no vi el segundo mensaje.
Di por hecho que solo mostraba la cabecera del JPG y me salte ver la función. |
#12
|
|||
|
|||
Esta función no obtiene la información de si la imagen es de 32, 24, 16 o 8 bits.
El valor obtenido no corresponde con lo mencionado en el post. Pueden comprobarlo ustedes mismos. Deje en un post mas arriba lo que quiero y lo que quiero es consultar un fichero JPG directamente en el archivo y comprobar si es de 32 bits, 24, 16 o 8 bits. Tal como cuando hace Windows con las propiedades del fichero, que si es de IMAGEN muestra dichos valores de forma muy directa. |
#13
|
||||
|
||||
¿Puedes poner tu código?
|
#14
|
|||
|
|||
Supuestamente el valor Read, obtiene el valor de los Bits de color.
Esto está cogido basándose en el código sugerido mas arriba puesto por otros foreros. El código está en Delphi, pero en C++ es muy parecido. Este código no funciona: Código:
String Fichero = fV->SV->DatSetPCRutaTPV_Ncr + "Imagenes\\Logo.jpg"; TJPEGImage* Imagen_JPG = new TJPEGImage(); TMemoryStream *StreamTmp = new TMemoryStream; Imagen_JPG->LoadFromFile(Fichero.w_str()); Imagen_JPG->SaveToStream(StreamTmp); wchar_t buffer[1024]; StreamTmp->Read(buffer, 0); INT COLOR = buffer[0] * 8; ShowMessage(COLOR); |
#15
|
||||
|
||||
¿Y en qué parte de ese código se leen los datos de la imagen?
|
#16
|
|||
|
|||
Código:
wchar_t buffer[1024]; StreamTmp->Read(buffer, 0); INT COLOR = buffer[0] * 8; |
#17
|
||||
|
||||
Hola Jesus.
Código PHP:
Código PHP:
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#18
|
|||
|
|||
Muchas gracias por tu aporte, lo probaré y te digo.
|
#19
|
||||
|
||||
Hola Jesus.
Cita:
Te comento que en mis pruebas, la información que muestra la función traducida, se corresponde con la obtenida en el explorador de windows en las propiedades del archivo. De todos modos se me ocurrió que también podrías probar de este modo: Código PHP:
Código PHP:
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#20
|
|||
|
|||
El problema es que con este código cuando la imagen JPG es de 32 bits de color sucede un error al asignárselo al TBitmap en la siguiente LINEA:
Código:
bmp->Assign(jpg);//Salta una excepción si la IMANGEN DEL jpg es de 32 bits de color MUCHISIMAS GRACIAS A TODOS, habéis aportado mucho a mi problema en la resolución. GRACIAS, GRACIAS y GRACIAS. Última edición por jesusgandia1966 fecha: 29-03-2015 a las 03:44:05. Razón: Agradecimiento |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Obtener datos de un fichero PDF | Lourdes.Fdez | Varios | 7 | 03-02-2010 23:51:57 |
obtener fechas fichero | meme | C++ Builder | 2 | 27-10-2007 16:12:05 |
Obtener un fichero adjunto a un nodo de un fichero XML | muntasil | Internet | 0 | 18-07-2006 12:57:57 |
Obtener info de bateria | igest2000 | Varios | 3 | 19-01-2006 23:25:41 |
Obtener INfo del la BIOS | Enan0 | API de Windows | 3 | 04-05-2005 14:48:20 |
|