Página 1 de 1

Archivos .JPG dañados

NotaPublicado: Dom Abr 12, 2020 6:08 pm
por Rafa18
Hola, saludos a todos.

Aburrido en casa me puse a ver fotografías antiguas y me he encontrado con unos seis o siete archivos que están dañados y no los puedo abrir.

Por suerte tengo copia de seguridad por lo que he podido recuperarlas todas, mi duda era:

¿Existe alguna forma de ver si tengo más archivos dañados sin tener que abrir todas las fotos una por una???

Soy usuario de Linux.

Re: Archivos .JPG dañados

NotaPublicado: Dom Abr 12, 2020 7:04 pm
por Guillermo Luijk

Re: Archivos .JPG dañados

NotaPublicado: Dom Abr 12, 2020 11:15 pm
por Rafa18
Lo suyo sería ver si hay alguna manera de hacerlo de forma recursiva, soy un poco lento para esto y a estas horas no tengo cabeza, mañana intentaré buscar más información.

Gracias Guillermo.

Re: Archivos .JPG dañados

NotaPublicado: Lun Abr 13, 2020 3:08 am
por Danichrome
Hola, yo uso photorec para recuperar datos, la tienes en el repo extras de Arch, también puedes buscar como testdisk. No sé si vale exactamente para lo que necesitas, pero a mí me salvado la vida en varias ocasiones con unidades o tarjetas borradas por error o accidente.

Re: Archivos .JPG dañados

NotaPublicado: Lun Abr 13, 2020 5:38 am
por aremesal
Rafa18 escribió:Lo suyo sería ver si hay alguna manera de hacerlo de forma recursiva, soy un poco lento para esto y a estas horas no tengo cabeza, mañana intentaré buscar más información.

Gracias Guillermo.


Habría que saber porqué no podías abrir las fotos: lo de usar identify/convert con $? solo funciona si el archivo no es de imagen (cabecera corrupta).

He hecho unas pruebas corrompiendo JPGs (metiendo, cambiando y quitando bits con un editor hexadecimal), creo que este script hará lo que necesitas, ya que captura tanto imágenes corruptas como imágenes con cabecera corrupta: https://pastebin.com/wF7aLTP4

Simplemente pégalo en un archivo nuevo, dale permisos de ejecución y ejecútalo en el directorio raíz de tus fotos. El script recorre todos los directorios de forma recursiva, y deja un listado de corruptos en imagenes_corruptas.txt

Si son cientos de imágenes puede tardar un buen rato, tenle paciencia :lol:

Re: Archivos .JPG dañados

NotaPublicado: Lun Abr 13, 2020 10:34 am
por Rafa18
aremesal escribió:Habría que saber porqué no podías abrir las fotos: lo de usar identify/convert con $? solo funciona si el archivo no es de imagen (cabecera corrupta).

He hecho unas pruebas corrompiendo JPGs (metiendo, cambiando y quitando bits con un editor hexadecimal), creo que este script hará lo que necesitas, ya que captura tanto imágenes corruptas como imágenes con cabecera corrupta: https://pastebin.com/wF7aLTP4

Simplemente pégalo en un archivo nuevo, dale permisos de ejecución y ejecútalo en el directorio raíz de tus fotos. El script recorre todos los directorios de forma recursiva, y deja un listado de corruptos en imagenes_corruptas.txt

Si son cientos de imágenes puede tardar un buen rato, tenle paciencia :lol:


Hola Aremasal.

Tu script empieza bien pero se queda pillado en alguna carpeta.

Muestra:

Comprobando -...ling...-09-18........

Y de ahí no pasa por mucho que espere.

Por el nombre intuyo que es la carpeta llamada: 16-09-18 Castillo de Stirling - Destileria - Saint Andrews

No sé si los guiones influye en tu script y hace que se bloquee pero no creo ya que las demás carpetas tienen guiones también.

El caso es que falla algo.

Re: Archivos .JPG dañados

NotaPublicado: Lun Abr 13, 2020 2:07 pm
por aremesal
Rafa18 escribió:
aremesal escribió:Habría que saber porqué no podías abrir las fotos: lo de usar identify/convert con $? solo funciona si el archivo no es de imagen (cabecera corrupta).

He hecho unas pruebas corrompiendo JPGs (metiendo, cambiando y quitando bits con un editor hexadecimal), creo que este script hará lo que necesitas, ya que captura tanto imágenes corruptas como imágenes con cabecera corrupta: https://pastebin.com/wF7aLTP4

Simplemente pégalo en un archivo nuevo, dale permisos de ejecución y ejecútalo en el directorio raíz de tus fotos. El script recorre todos los directorios de forma recursiva, y deja un listado de corruptos en imagenes_corruptas.txt

Si son cientos de imágenes puede tardar un buen rato, tenle paciencia [emoji38]


Hola Aremasal.

Tu script empieza bien pero se queda pillado en alguna carpeta.

Muestra:

Comprobando -...ling...-09-18........

Y de ahí no pasa por mucho que espere.

Por el nombre intuyo que es la carpeta llamada: 16-09-18 Castillo de Stirling - Destileria - Saint Andrews

No sé si los guiones influye en tu script y hace que se bloquee pero no creo ya que las demás carpetas tienen guiones también.

El caso es que falla algo.
Puede ser por caracteres especiales, habría que ver en cual se para... Habrá que cambiar el IFS.

Re: Archivos .JPG dañados

NotaPublicado: Lun Abr 13, 2020 4:13 pm
por Rafa18
Creo que ya lo tengo, es por la forma que uso para de nombrar algunas fotografías...

Por ejemplo, si tengo un par de fotos del tipo:

9170332.JPG
9170333.JPG

Y hago un montaje con ellas, el archivo resultante lo nombro así:

9170332 - 9170333.JPG

Son esos archivos los que hacen que el script se quede bloqueado, los del tipo "espacio, guión medio, espacio". Haz la prueba y verás.

El caso es que no tengo mucha idea de cómo programar un script.

¿Cómo podría corregirlo?

Re: Archivos .JPG dañados

NotaPublicado: Lun Abr 13, 2020 4:19 pm
por Rafa18
Vale, hay otro fallo más.

Me temo que el script hace distición entre mayúsculas y minúsculas.

He tenido cámaras que me ponían la extensión como .jpg y otras cámaras que graban como .JPG y por lo que veo tan sólo analiza las que son en minúsculas.

:|

Lo que se complica hacer algo aparentemente sencillo...

Re: Archivos .JPG dañados

NotaPublicado: Lun Abr 13, 2020 4:54 pm
por Guillermo Luijk
Bueno soluciones o no el asunto, ya tienes dos aprendizajes Rafa: que no es buena idea usar espacios en los nombres de ficheros (no para el script de aremesal, esto es universal), y que Linux distingue mayúsculas de minúsculas (algo que estaría bien que hiciera Windows). :D

Salu2!

Re: Archivos .JPG dañados

NotaPublicado: Lun Abr 13, 2020 5:10 pm
por aremesal
Rafa18 escribió:Vale, hay otro fallo más.

Me temo que el script hace distición entre mayúsculas y minúsculas.

He tenido cámaras que me ponían la extensión como .jpg y otras cámaras que graban como .JPG y por lo que veo tan sólo analiza las que son en minúsculas.

:|

Lo que se complica hacer algo aparentemente sencillo...


Ok, lo que suponía. Es problema de que al expandir variables dentro de un comando, si hay espacios, el comando "se rompe". La solución es sencilla (cuando la sabes :lol: ) basta con cambiar el IFS.

Ya he hecho el añadido al script, y también he permitido JPG además de jpg.

He añadido comentarios, por si quieres investigar qué hace cada parte del script: https://pastebin.com/wF7aLTP4

Re: Archivos .JPG dañados

NotaPublicado: Mar Abr 14, 2020 12:40 pm
por Rafa18
Guillermo Luijk escribió:Bueno soluciones o no el asunto, ya tienes dos aprendizajes Rafa: que no es buena idea usar espacios en los nombres de ficheros (no para el script de aremesal, esto es universal), y que Linux distingue mayúsculas de minúsculas (algo que estaría bien que hiciera Windows). :D

Salu2!


Bueno, lo que Linux distingue entre mayúsculas y minúsculas ya lo sabía, es así de toda la vida. Los nombre de las fotografías no los pongo yo, los pone la cámara y según el modelo pone la extensión en mayúsculas o minúsculas según le de el punto al fabricante.

Lo de usar espacios y algunos caracteres especiales es algo que a estas alturas ya debería estar más que superado pero hay algún que otro programa que da fallos.

Una vez me dió por usar el símbolo € para una contraseña y me lo dió por bueno cuando la creé pero a la hora de usarla decía que pa mi. No veas la que me lió.

aremesal escribió:Ok, lo que suponía. Es problema de que al expandir variables dentro de un comando, si hay espacios, el comando "se rompe". La solución es sencilla (cuando la sabes :lol: ) basta con cambiar el IFS.

Ya he hecho el añadido al script, y también he permitido JPG además de jpg.

He añadido comentarios, por si quieres investigar qué hace cada parte del script: https://pastebin.com/wF7aLTP4


Ya funciona Aremesal, muchas gracias.

Eso sí, va lento de narices y eso que el procesador de mi equipo, sin ser tope gama, es bastante rápido.

¿Por casualidad hay algo que permita chequear también los videos???

Re: Archivos .JPG dañados

NotaPublicado: Mar Abr 14, 2020 1:09 pm
por Guillermo Luijk
Rafa18 escribió:Lo de usar espacios y algunos caracteres especiales es algo que a estas alturas ya debería estar más que superado pero hay algún que otro programa que da fallos.


Pues ya has visto que no está tan superado, así que la próxima vez que puedas elegir usarlos o no piensa que no siempre habrá un aremesal para solucionarte la papeleta. Es una pena dejar de tener que usar alguna herramienta porque elegiste algo tan sencillo como usar espacios como nombres de archivo no?. Puedes usar la barra baja en su lugar _

Y sí Linux distingue mayúsculas y mayúsculas de toda la vida. En concreto desde que Linus Torvalds lo diseñó copiando Unix donde ocurre igualmente. Y es una sencillez que tiene lógica; lo complicado es lo que hace Windows, que por intentar parecer más humano equipara ciertos caracteres con otros y luego vienen los líos.

Salu2!

Re: Archivos .JPG dañados

NotaPublicado: Mar Abr 14, 2020 1:15 pm
por aremesal
Guillermo Luijk escribió:
Rafa18 escribió:Lo de usar espacios y algunos caracteres especiales es algo que a estas alturas ya debería estar más que superado pero hay algún que otro programa que da fallos.


Pues ya has visto que no está tan superado, así que la próxima vez que puedas elegir usarlos o no piensa que no siempre habrá un aremesal para solucionarte la papeleta. Es una pena dejar de tener que usar alguna herramienta porque elegiste algo tan sencillo como usar espacios como nombres de archivo no?. Puedes usar la barra baja en su lugar _

Y sí Linux distingue mayúsculas y mayúsculas de toda la vida. En concreto desde que Linus Torvalds lo diseñó copiando Unix.

Salu2!
De hecho la anomalía es que Windows no distinga entre mayúsculas y minúsculas. Es herencia de un nefasto diseño del antiguo filesystem de MSDOS, que se fue heredando a FAT16, FAT32, NTFS... y no tienen huevos a dar el portazo de una vez y cambiarlo.

Es como la broma de mal gusto de los permisos de fichero en los filesystems de Microsoft... teniendo diseños robustos, eficientes, útiles y flexibles como los de Unix (POSIX) emperrarse en mantener fs de juguete por compatibilidad hacia atrás es patético.

Re: Archivos .JPG dañados

NotaPublicado: Mar Abr 14, 2020 2:16 pm
por Guillermo Luijk
aremesal escribió:De hecho la anomalía es que Windows no distinga entre mayúsculas y minúsculas. Es herencia de un nefasto diseño del antiguo filesystem de MSDOS, que se fue heredando a FAT16, FAT32, NTFS... y no tienen huevos a dar el portazo de una vez y cambiarlo.

ma non troppo. No me parece una anomalía, es solo un criterio para resultar más "humano" como siempre trata de hacer Windows, y casi siempre metiendo la pata (quién no recuerda al odioso [url="https://es.m.wikipedia.org/wiki/Ayudante_de_Office"]clip de Office[/url]?). Vamos que lo "complicado" en todo caso es hacer lo que hace Windows y lo fácil lo que hacen Unix/Linux. Lo que ocurre es que al final diría que ese esfuerzo humanizante crea más inconvenientes que ventajas; habría que encuestar al usuario medio de Windows.

De hecho el propio Windows se hace líos: si renombras un .TXT como .txt, te deja hacerlo, pero al acabar el renombrado sigue mostrando en la carpeta .TXT. Tienes que ir a otra carpeta y volver para constatar que el fichero ahora se llama .txt. Y por supuesto no pueden convivir en la carpeta un .TXT y un .txt de igual nombre, así que si copias una pila de ficheros desde Linux y dos de ellos solo se diferencian en mayúsculas/minúsculas ya está el lío montad. Esa es la "inteligencia" de Windows.

Si las direcciones de correo electrónico por ejemplo fueran case sensitive sería un desmadre, habría un lío tremendo de emails llegando a quien no debe o incluso phishing. Es un caso donde no ser case sensitive es claramente mejor (me hace gracia que haya gente que aún te pregunta si tu email es con mayúscula o minúscula). En cambio para tratar ficheros en un ordenador creo que es mejor ser case sensitive. Y ya la guinda de Microsoft es que hasta un lenguaje de programación como VB no sea case sensitive, eso es lo nunca visto (y mira que me gusta VB) :D

Salu2!

Re: Archivos .JPG dañados

NotaPublicado: Mar Abr 14, 2020 2:43 pm
por aremesal
Ojo, hace unos años leí de un grave problema de seguridad de un servicio de email, no recuerdo cual, pero de los grandes, puede que incluso Gmail, que te permitía crear una cuenta usuario.mio@tal.com y otro usuariomio@tal.com, que eran cuentas diferentes... ¡pero que todo lo enviado a la "con punto" llegaba también a la "sin punto", para facilitar la vida a los usuarios!

Si sabías de alguien cuyo email tuviese el punto, te creabas el equivalente sin punto, te ibas a Facebook por ejemplo, pedías recuperar contraseña al email... y claro, te llegaba al que habías creado sin punto.

Mo corrigieron hace años, pero menuda cagada a cuenta de la usabilidad...

Re: Archivos .JPG dañados

NotaPublicado: Mar Abr 14, 2020 2:53 pm
por Guillermo Luijk
Pues me parece una idea impropia de alguien con dos dedos de frente :O

Re: Archivos .JPG dañados

NotaPublicado: Mar Abr 14, 2020 8:16 pm
por Rafa18
Pues nada, aquí sigo.

Lleva más o menos desde las nueve de la mañana y son las nueve y cuarto por lo que van como 12 h aproximadamente y todavía le queda aunque no sé cuanto.

Estaría bien una opción para "grabar partida" y continuar en otro momento.

Re: Archivos .JPG dañados

NotaPublicado: Mar Abr 14, 2020 9:31 pm
por Rafa18
Lo más jodido es que no sé si está funcionando como debería...

...Ya ha pasado la carpeta de Londres y no me ha detectado fotos dañadas cuando sé que tengo alguna.

Re: Archivos .JPG dañados

NotaPublicado: Mié Abr 15, 2020 8:33 am
por aremesal
Rafa18 escribió:Lo más jodido es que no sé si está funcionando como debería...

...Ya ha pasado la carpeta de Londres y no me ha detectado fotos dañadas cuando sé que tengo alguna.


Es que esto lo he hecho a ciegas... detecta fotos con cabecera corrupta, y fotos con datos corruptos de forma que la compresión sea incorrecta.

Pero no sé qué les pasaba a tus archivos corruptos (por eso te preguntaba al inicio en qué consistía esa corrupción).

Tardar tardará bastante, porque para cada archivo se está ejecutando identify, que debe leer el archivo entero, digamos "abrirlo" en memoria. Se podría hacer mucho más rapido tirando de hilos de ejecución para aprovechar los multicores, haciéndolo en C, por ejemplo, pero para eso ya no tengo tiempo ahora :lol:

Si las fotos están en un disco externo, puede que el cuello de botella esté en la transferencia del disco.

Re: Archivos .JPG dañados

NotaPublicado: Mié Abr 15, 2020 8:47 am
por Rafa18
Al final corté el proceso después de prácticamente todo el día ya que aquello no terminaba nunca, ni siquiera sé que orden toma a la hora de analizar los archivos ya que ni era alfabético ni por frechas.

Por supuesto gracias por tu esfuerzo e interés pero me temo que no es viable.

______________________

Hace tiempo se me dañó un disco duro, tan pronto como me dí cuenta compré uno nuevo y lo cambié por lo que posiblemente el error de los archivos venga de ahí.

El caso es que por aquel entonces no me dí cuenta ya que no abro todas las fotos todos los días como tu comprenderás pero bueno, es otra historia.

Los archivos están actualmente en un HD dedicado a datos, quiero decir, ahí no hay sistema operativo ni programas instalados. Eso sí, no es una unidad de estado sólido ya que me interesaba más la capacidad que la velocidad.

Mi procesador es un I7 de hace unos años, no es un tope gama pero no se queda atrás: Seis núcleos con dos hilos de ejecución por núcleo lo que vienen a ser doce núcleos "virtuales" o yo que sé cómo llamarlo.

Suficiente para casi cualquier cosa.