FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
||||
|
||||
Validar Imagen
Yo estoy haciendo un programa que muestra archivos de imagenes JPG y BMP en un TImage, pero como puedo hacer para validarlos, puesto a que yo, por ejemplo, puedo renombrar un archivo.txt a un archivo.jpg/archivo.bmp y me genera error al intentar cargalo, esto lo hago a modo de "error de lectura" como para poder contemplar esto. Existe alguna forma, es decir, hay algun encabezado o dato que pueda verificar que si existe en el archivo JPG o BMP, me lo valide y sino que lo descarte?
Saludos y gracias
__________________
|
#2
|
||||
|
||||
Para validar que un archivo exista puedes utilizar la funcion FileExists, pero si tu pregunta es que valide que el archivo de imagen no este dañado, no se si podrá, tendrías que crear un captura de errores TRY / EXCEPT, esa es la forma que utilizo, espero que te sirva.
|
#3
|
||||
|
||||
Cita:
Podrias ponerme un ejemplo de como usar TRY / EXCEPT para capturar cuando esta dañado? A ver, yo lo entiendo asi, es correcto?
Saludos y Gracias
__________________
|
#4
|
||||
|
||||
Podrías probar a mostrarlo en un TImage (puede estar oculto si no te interesa que se vea) a ver si genera algun error, posiblemente un EInvalidGraphic.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
||||
|
||||
Cita:
__________________
Última edición por MaMu fecha: 22-05-2007 a las 09:42:02. |
#6
|
||||
|
||||
Esto es lo que hice, segun entiendo yo, pero no me captura le excepcion.
Tengo añadida JPEG en el uses.
__________________
|
#7
|
||||
|
||||
Cita:
No vi tu respuesta. Yo intentaría capturar el tipo concreto del error; Algo así:
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#8
|
||||
|
||||
No importa como intente la captura de la excepcion, siempre me sale:
'JPEG error #42' saltando todo el codigo de tratamiento. Why?!?!
__________________
|
#9
|
||||
|
||||
Cita:
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#10
|
||||
|
||||
Pues he probado con un Readme.txt renombreado a Readme.bmp y readme.jpg y este código y me lo captura perfectamente.
Desactiva que salten las excepciones en diseño (Stop on Delphi exceptions) en el IDE.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#11
|
||||
|
||||
Hice todo, desactive eso del IDE, lo que yo hago es lo siguiente:
Pero no me borra el archivo que esta mal, me lo deja. Porque?
__________________
Última edición por MaMu fecha: 22-05-2007 a las 14:25:15. |
#12
|
||||
|
||||
Interesante código manu, pero como no te andes con cuidado puedes quedarte sin fotos En concreto, los errores EOutOfResources y EOSError pueden producirse aunque el archivo sea valido, solo hace falta que pilles al windows en un "mal momento".
Por otro lado, comprueba que: es verdaderamente la ruta del archivo. |
#13
|
||||
|
||||
Cita:
Estaría bien que comprobaras antes de borrar si el archivo existe...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#14
|
|||
|
|||
Para saber desde el principio si un fichero es una imagen (tenga la extensión que tenga) lo mejor es abrirlo en modo binario y comprobar si tiene determinada característica propia de ese archivo. Por ejemplo, los jpg siempre tienen la cadena JFIF en la 7ª posición:
Cada formato de imagen tiene sus características, que se pueden averiguar con cualquier editor hexadecimal. |
#15
|
||||
|
||||
Cita:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Validar Nif | Colgueit | OOP | 12 | 10-05-2006 02:50:28 |
Validar Fecha | Gustavo Gowdak | OOP | 7 | 03-05-2006 19:24:37 |
Validar un campo | gluglu | Varios | 3 | 14-01-2005 15:43:58 |
validar sin exepciones | gustavo2 | Conexión con bases de datos | 2 | 30-01-2004 15:54:56 |
validar en qry | alcides | SQL | 2 | 06-01-2004 18:11:19 |
|