Extraire un jpg d'un raw depuis ART

Exiftool et juste un recours au cas où exiv2 émet une exception.
Sous Linux, il y a une librairie partagée appelée libexiv2.so.x qui est appelée par ART.
je ne parle pas de ça mais du programme exécutable exiv2 qui est autonome. Cest cet exécutable qui est appelé par le script.

ça fait longtemps que sous Windows on évite l’utilisation des librairies partagées et que l’on met toutes les dépendances dans le paquet.

Il n’y a certainement pas de probleme à utiliser exiftool car on l’appele en ligne de commandes. Il faut alors modifier en conséquence le script txt et si c’est un peu compliqué écrire un script bash.
L’interet d’exiv2 est que c’est tres simple à appeler.

Vi, depuis très très longtemps… après on s’étonne que l’espérance de vie de l’OS est courte sur un PC où l’utilisateur le goinfre d’applis, la comorbidité avec une telle surcharge pondérale n’y aide pas :laughing:

Oui c’est probable mais je n’ai pas du tout creusé la question.
J’ai une session Win10 uniquement pour des raisons PRO de télétravail, les applis OpenSource qui y sont installées n’y sont que pour tester, je ne les utilise pas en production.
Et actuellement je suis un peu surbooké, le mot est faible, pour m’en occuper et aider Gavot

1 « J'aime »

Je suis tout à fait d’accord @Jaco et c’est pour celà que je suis contre les Flatpak, AppImg et autres trucs du genre sous Linux.

1 « J'aime »

Le script fourni dans le premier post permet d’extraire des jpg des raw sans écrire de ligne de commande et en restant dans ART.
Cela fonctionne sous Windows sans problème.
Évidemment il existe une flopée de logiciels sous Windows, utilisant exiv2 ou exiftool en arrière-plan et permettant d’extraire les jpg. En particulier les visualiseurs qui comme Irfanview affichent les jpg intégrés et non les raw bien sûr.

pour faire fonctionner sous Windows, il faut donc ;

  • Télécharger MinGW64 64 bit shared libraries sur la page https://exiv2.org/download.html
  • extraire du fichier compressé exiv2-0.27.5-MinGW64.tar.gz le fichier exiv2.exe et le mettre à côté de ART.exe
  • identifier le numéro du jpg que l’on veut extraire (c’est fait une fois pour toutes)
  • Éditer le script en mettant le numéro du jpg que l’on veut extraire et le nom de l’appareil photo comme il apparait dans ART
  • Sauvegarder le script sous un nom <nom significatif>.txt dans le sous répertoire à créer usercommands dans le répertoire de configuration (à côté du fichier options).

exemple de script pour un Z 50


[ART UserCommand]
Label=Extract the JPG preview
Command=exiv2 -e p5
NumArgs=1
Camera=NIKON Z 50
MatchCamera=true
FileType=raw

On trouve la commande dans le menu contextuel du navigateur de fichiers de ART
ART_8N4AvjSr7n

Merci edmond_Gautier pour ton aide pour m’aider à résoudre mon problème.
J’ai suivi tes explications et j’ai créé le fichier .txt suivant
image

Je retrouve bien la “usercommand” dans le clic droit et lorsque je l’exécute, il ne se passe rien et je n’ai pas de message d’erreur !

En relisant tes explications, je ne comprends pas ta phrase

  • identifier le numéro du jpg que l’on veut extraire (c’est fait une fois pour toutes)
  • Éditer le script en mettant le numéro du jpg …

Peux-tu me donner plus d’explications sur ce point et me dire ce qui ne va pas / manque dans mon fichier .txt
D’avance Merci - Gavot

@Gavot

FileType=raw
Ici ce n’est pas l’extension du nom de conteneur demandé il me semble, remet raw.

Command=exiv2 - e p5
Pas certain que ce soit 5 pour un RX10 III
Commence par p2

Généralement :
1 c’est la petite vignette, thumbnail
2 à 5 diverses versions de non raw, JPEG, TIFF ou autres de résolutions différentes

Souvent il n’y a qu’un JPEG en 2
Parfois rien, des DNG de smartphones par exemple.

Pour un sony RX100 c’est p2
pour la camera tu n’es pas obligé de préciser le type M3.
En indiquant RX100 je peux appliquer le script à tous les modéles du RX100
SM

  • Tout d’abord, il ne faut modifier uniquement ce qui est entre les signes <…>
  • il ne faut donc pas toucher à RAW
  • exiv2 numérote les jpg intégrés dans le raw. La commande exiv2 -p p permet de lister les differents jpg integres avec leur dimensions
    exemple sur un raw D80
Andre@C1 MINGW64 /d/rawtherapee/rtsource
$ exiv2 -p p '/d/PHOTOS/PHOTOS-4/1911Birmanie/1112 Birmanie/191112_163650-birmanie-M-7852.NEF'
Preview 1: image/tiff, 160x120 pixels, 57852 octets
Preview 2: image/jpeg, 570x375 pixels, 106540 octets
Preview 3: image/jpeg, 3872x2592 pixels, 1250731 octets

si je veux le jpg N°3, je mets dans le script à la place de

Command=exiv2 -e p<numero du jpg>
Command=exiv2 -e p3

pour un autre appareil sony ILCE 7M2

$ exiv2 -p p /d/PHOTOSTEST/test11/_DSC8160.ARW
Preview 1: image/jpeg, 160x120 pixels, 6359 octets
Preview 2: image/jpeg, 1616x1080 pixels, 418371 octets

Il n’y a que 2 preview de dimensions réduites. J’ai déjà remarqué que SONY n’intégrait pas des JPG pleine résolution dans les RAW

  • pour le SONY DSC-RX10M3 , je ne sais pas combien il y a de preview. Applique la commande exiv2 -p p sur une de tes photos. C’est à faire une fois pour chaque boitier.

Cest expliqué ci dessus

Il faut mettre le nom de l’appareil photo et le numéro du jpg que tu veux extraire
tu donnes au .txt un nom identifiant le boitier pour t’y retrouver.
exemple extraxtJPGRX10M3.txt

@edmond_Gautier
J’ai essayé de comprendre pourquoi ça ne fonctionnait pas pour moi sous Win10.
Ce n’est pas mon système principal, je ne l’utilise que pour qq tâches Pro

Comme pour mes fichiers RAF le bon numéro de non-raw est le 2, j’avais recherché sous Linux le meilleur non-raw, j’insistais à mettre sous Win10 dans mon fichier .txt

Command=exiv2 -e p2

J’ai mis une image dans le dossier de ART, à coté de exiv2.exe et curieusement la commande ne me trouve que le premier non-raw, le thumbnail de très faible définition.

C:\Program Files\ART\1.17.2>exiv2 -p p DSCF3954.RAF
Preview 1: image/jpeg, 7276608 bytes
Preview 2:

Et ce que j’obtiens sous Linux… c’est plus parlant

jacotux@ThinkStation Backup]$ exiv2 -p p DSCF3954.RAF
Preview 1: image/jpeg, 160x120 pixels, 8832 octets
Preview 2: image/jpeg, 4416x2944 pixels, 5595267 octets

De mon point de vue mettre brutalement exiv2.exe extrait de MinGW64 et quand bien même ART embarque libexiv2.dll ( 3080 ko ) ce n’est pas celle de MinGW64 ( 4086 ko ) plus complète.
J’ai tenté de substituer l’une pour l’autre, ce n’est pas mieux.

Je pense que si Alberto utilise exiftools à la place de exiv2 avec Windows c’est qu’il doit avoir ses raisons, faudrait lui demander.

A moins que quelque chose ne m’échappe, pour moi ça ne fonctionne pas sous Windows.

Re,

Parce-que je n’aime pas les choses qui me résiste j’ai creusé encore le sujet.
Comme edmond_Gautier faisait l’annonce ailleurs de la version des binaires “optimisés” pour Windows, ART_1.17.2_W64_Skylake , qu’il propulse (voire construit) j’ai voulu voir ce qu’elle avait dans le ventre. Et surprise elle embarque directement la library libexiv2.dll dans une version étendue si j’en crois son poids ( 4124 ko )
Donc pas besoin d’aller la chercher ailleurs et cerise sur le gâteau cette fois l’extraction des non-raw fonctionne parfaitement.
Autrement dit Gavot pour ne pas te prendre la tête ce serait la version à utiliser pour toi sous Windows.
Particularité elle n’a pas d’installeur, donc standalone, il n’y aura pas d’icône de lancement dans ton menu [ Démarrer ] ou ailleurs, il suffit de dézipper l’archive et double cliquer sur l’exécutable ART.exe
Son dossier utilisateur est distinct de la version release ART_1.17.2_Win64.exe de bitbucket.org on le trouve ici, dossier ART-dev, le chemin est

C:\Users<nom_de_session>\AppData\Local\ART-dev

Capture d’écran 2022-12-03 164042

Pour moi c’est la deuxième occurrence de non-raw qui est la bonne, voilà mon fichier jpeginraw.txt pour exemple.

[ART UserCommand]
Label=Extraire le JPEG Fuji
Command=exiv2 -e p2
NumArgs=1
Camera=FUJIFILM
MatchCamera=true
FileType=raw

Comme j’ai eu plusieurs boîtiers de la marque ; X100T, X-E3 et maintenant X-E4 je ne précise que la marque sur la ligne Camera= , comme ça tous sont pris en charge.
Voilà en espérant que cette fois ça fonctionne pour toi.

La recherche avec la commande en console fonctionne aussi, of course

F:\ART_1.17.2_W64_Skylake\ART_1.17.2_W64_Skylake>exiv2 -p p DSCF3954.RAF
Preview 1: image/jpeg, 160x120 pixels, 8832 bytes
Preview 2: image/jpeg, 4416x2944 pixels, 5595267 bytes

:smiley:

1 « J'aime »

Puisque l’on parle de microarchitecture du processeur, j’ai un I5-8300h avec Coffee Lake, je dois prendre quelle binaire “optimisé” ?

Ben ! Tu es sous Linux je crois savoir pas avec vindose, les cinq versions de binaires d’André c’est pour du winchose :rofl:

rajout : ton tient c’est du coffee-lake dont une micro-architecture Skylake 14 nm

Oui, mais aussi W10 installé !

Dans ce cas le Skylake va bien pour toi.

Les explications sont là, selon le type, la génération du cpu certaines fonctions sont dispo ou pas, c’est sûr qu’une compilation typée pour un copro bien particulier sera plus performante.

J’ai vu que les ryzen ont droit à leur version optimisée, j’ai ça au pro soutenu par cette CG va falloir que je teste ART… bon arrivé à ce niveau, il faut mesurer, à mon avis la différence ne doit pas être sensible au point d’en avoir un ressenti.
Matos justifié car je fais du calcul aux éléments finis, d’où le cpu, depuis des modèles BIM, d’où le gpu… et coté résolution de calculs il y a une grosse différence par rapport à mon i7-8700 2,4 GHz quand même à 6 cores que j’ai chez moi.

M’enfin on dérape du sujet là, gaaned92 va nous tirer les oreilles. :face_with_open_eyes_and_hand_over_mouth:

Merci pour tes réponses. :grinning: :wink:

Super Jaco, avec la version des binaires “optimisés” pour Windows, tout fonctionne impeccablement bien.

Merci à vous tous de m’avoir éclairé et aidé.

PS : Serait-il possible en 2 mots d’expliquer la différence entre la version Windows que l’on trouve sur bitbucket.org et la version compilé par edmond_Gautier que l’on trouve sur ART-W64NightlyBuilds/ – Keybase.pub ?

Mais de rien, si on est ici c’est aussi pour aider en fonction de nos possibilités c’est un principe de base du libre où tout un chacun peut apporter une pierre à l’édifice, je pense à ceux qui ont des facilités linguistiques et sans trop rien y connaître à l’informatique font un gros travail de traduction pour que les applis soient déclinées en divers langages.

Pour ta question, je laisse la main à edmond_Gautier qui doit en savoir plus que moi sur ces diverses versions pour Windows.

Alberto genere une version windows uniquement pour les versions stables.
Il genere une version dite « generique » qui n’utilise que les instructions de base x86.
D’autre part, je mets tout le paquet dans un zip, alors que lui le met dans un installeur.

Il peut aussi y avoir des differences concernant les versions des dependances. Je mets frequemment Msys2 à jour alors qu’Alberto estbeaucoup plus conservatif.