Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/08/2019, à 14:58

thyguy

convertir des images en .heic en .jpg par lot [résolu]

Bonjour,
Voici mon problème :
Lorsque je charge de photos provenant d'un iphone (7 ), elles ont l’extension .heic et non l'extension .jpg.
J'ai vu qu'il existe un outil en ligne de commande pour convertir HEIC:
Il s'installe ainsi :

sudo apt install libheif-examples

pour convertir une image .heic en .jpg, il faut se placer dans son répertoire et saisir ceci (exemple pour IMG1472.heic qu'on veut convertir en IMG1472.jpg) :

heif-convert IMG1472.heic IMG1472.jpg

Maintenant, sachant que cette commande fonctionne pour une image, j'aimerais savoir quelle commande saisir pour que, non seulement cette image .heic puisse être convertie en .jpg, mais toutes les images du même répertoire.

Merci pour vos suggestions.

Cordialement
Thyguy

Dernière modification par thyguy (Le 19/08/2019, à 16:23)


Kernel : 4.15.0-54-generic x86_64 bits: 64 gcc: 7.4.0 ; Desktop : Cinnamon 3.8.9 (Gtk 3.22.30-1ubuntu3) dm: lightdm Distro: Linux Mint 19 Tara ; Device : P Compaq Elite 8300 SFF ; Graphics : Intel Xeon E3-1200 v2/3rd ; CPU :  Quad core Intel Core i5-3570

Hors ligne

#2 Le 19/08/2019, à 15:14

nam1962

Re : convertir des images en .heic en .jpg par lot [résolu]

Genre çà ?

cd le_bon_répertoire
for file in *.heic; do heif-convert $file ${file/%.heic/.jpg}; done

(Ce sera peut être HEIC ou Heic)


[ Modéré ]

Hors ligne

#3 Le 19/08/2019, à 15:22

thyguy

Re : convertir des images en .heic en .jpg par lot [résolu]

Bravo cela marche !!!!

J'ai utilisé .heic et non . HEIC car c'est ce qui apparraissait comme extension dans mon répertoire.

Cerise sur le gâteau, comment supprimer les images en .heic du répertoire pour ne garder que les images en .jpg ?

Un grand merci pour cette réponse à nam 1962 !!!!

Thyguy


Kernel : 4.15.0-54-generic x86_64 bits: 64 gcc: 7.4.0 ; Desktop : Cinnamon 3.8.9 (Gtk 3.22.30-1ubuntu3) dm: lightdm Distro: Linux Mint 19 Tara ; Device : P Compaq Elite 8300 SFF ; Graphics : Intel Xeon E3-1200 v2/3rd ; CPU :  Quad core Intel Core i5-3570

Hors ligne

#4 Le 19/08/2019, à 15:40

nam1962

Re : convertir des images en .heic en .jpg par lot [résolu]

Toujours en étant dans le bon répertoire :

rm *.heic

Ce genre de commande est à passer séparément (et après s'être assuré qu'on a fait ce qu'on voulait avant!)


[ Modéré ]

Hors ligne

#5 Le 19/08/2019, à 16:17

thyguy

Re : convertir des images en .heic en .jpg par lot [résolu]

Merci beaucoup pour ce nouveau conseil qui fonctionne.

(tout ceci m'aide à appréhender de nouvelles choses sur le terminal)

Thyguy


Kernel : 4.15.0-54-generic x86_64 bits: 64 gcc: 7.4.0 ; Desktop : Cinnamon 3.8.9 (Gtk 3.22.30-1ubuntu3) dm: lightdm Distro: Linux Mint 19 Tara ; Device : P Compaq Elite 8300 SFF ; Graphics : Intel Xeon E3-1200 v2/3rd ; CPU :  Quad core Intel Core i5-3570

Hors ligne

#6 Le 28/09/2019, à 19:13

alain_111

Re : convertir des images en .heic en .jpg par lot [résolu]

Alors là, MERCI !!!
C'est exactement ce que je cherchais, pour convertir les 7500 et quelques photos provenant de l'iPhone de ma fille.
On galérait depuis des jours à chercher un logiciel qui ferait ça sur son ordinateur (Windows 10) quand je me suis dit que ça pouvait peut-être se faire sur le mien (Linux Ubuntu 18.04).
Je sais pas pourquoi j'ai pas pensé à ça plus tôt.
Et bingo !
Ça fonctionne parfaitement, c'est juste excellent.
On remerciera jamais assez tous les contributeurs sur ce forum !!!

Hors ligne

#7 Le 28/09/2019, à 19:35

nam1962

Re : convertir des images en .heic en .jpg par lot [résolu]

alain_111 a écrit :

(...)
On galérait depuis des jours à chercher un logiciel qui ferait ça sur son ordinateur (Windows 10) quand je me suis dit que ça pouvait peut-être se faire sur le mien (Linux Ubuntu 18.04).
Je sais pas pourquoi j'ai pas pensé à ça plus tôt.
(...)

Parce que tu n'as pas eu la fessée.

Qu'est ce qui te prenait d'être help desk gratos pour Microsoft ? (pour un truc qu'ils savent pas faire en plus)

...et surtout que fait ta fille sur cette bouse ?

En cas de doute, un peu de lecture : https://privacytools.dreads-unlock.fr/#win10


[ Modéré ]

Hors ligne

#8 Le 28/09/2019, à 20:34

alain_111

Re : convertir des images en .heic en .jpg par lot [résolu]

Et je sais bien tout ça...
;+)
Mais je n'ai plus mon mot à dire, là, et elle a un ordinateur sous W10 + un iPhone… mad
Donc, je lui ai préparé et configuré son Windows 10 du mieux possible, viré toutes les applications préinstallées, désactivé tout ce qui sert à rien avec W10Privacy : https://www.winprivacy.de/english-home/

Et là, ça nous avait bien énervé ces fichiers .heic à la con…
Mais heureusement que Ubuntu-fr.org est là !!!!!!

Hors ligne

#9 Le 29/09/2019, à 07:51

docteur_marc

Re : convertir des images en .heic en .jpg par lot [résolu]

sous Win 10 et IOS

tu a XNVIEW   et son convertisseur XnConvert


https://www.xnview.com/fr/

https://www.xnview.com/fr/xnconvert/

j'utilise cela sous Windows depuis + de 10 ans

Hors ligne

#10 Le 29/09/2019, à 17:59

LeoMajor

Re : convertir des images en .heic en .jpg par lot [résolu]

bonjour,

au cas où le type mime ne serait pas défini dans le paquet libheif-examples ??

cat newmagic

0x04       bequad      0x6674797068656963                  Heic
!:mime  image/heic

ou variante plus simple
cat mymagic

0x04       string      ftypheic                  Heic
!:mime  image/heic
file -i -m newmagic *.{heic,HEIC,Heic}

citrouille.heic: image/heic; charset=binary
citron.HEIC:     image/heic; charset=binary
citron.Heic:     image/heic; charset=binary

mv citron.Heic chocolat

file -m newmagic -bi chocolat
image/heic; charset=binary

Hors ligne

#11 Le 01/10/2019, à 14:38

moko138

Re : convertir des images en .heic en .jpg par lot [résolu]

nam1962 a écrit :

Genre çà ?

cd le_bon_répertoire
for file in *.heic; do heif-convert $file ${file/%.heic/.jpg}; done

(Ce sera peut être HEIC ou Heic)

NON.
Cette commande ne convertit pas les fichiers comportant des espaces dans leurs noms.

Et si, derrière, vous avez vraiment exécuté un rm *.heic, il n'y a plus qu'à espérer que l'importante consigne, malencontreusement mise entre parenthèses - pourquoi ? -

(et après s'être assuré qu'on a fait ce qu'on voulait avant!)

ait été correctement appliquée.
  Sans quoi, les *heic ont été supprimés, même ceux qui n'avaient pas été convertis.

= =

Je propose (avec récursivité) :

cd le-bon-répertoire && find . -type f -iname '*.heic' -print0 | xargs -0 heif-convert

ou sans récursivité :

cd le-bon-répertoire && find . -maxdepth 1 -type f -iname '*.heic' -print0 | xargs -0 heif-convert

==============================

La première partie marche impeccablement :

moko@pc:~/bureau/test3$ find ~/bureau/test2 -type f -iname '*.heic' -print0
/home/moko/bureau/test2/1_autumn_1440x960.HEIC/home/moko/bureau/test2/2_autumn_1440x960.Heic/home/moko/bureau/test2/3 d'autumn 1440x960.heicmoko@pc:~/bureau/test3$

À vous de tester la commande complète, puisque je ne trouve ni le paquet pour ma vieille distribution ni le man pour aucune version d'Ubuntu.

= =

Remarque
  Faute du paquet ad hoc, j'ai testé une formule équivalente pour convertir les .png en .jpg :

find ~/bureau/test3 -type f -iname '*.png' -print0 | xargs -0 mogrify -format jpg

Ça marche et ça donne :

moko@pc:~$ ls -lAR  ~/bureau/test3 
/home/moko/bureau/test3:
total 128
-rw-r--r-- 1 moko moko 12648 oct.   1 15:15 123.jpg
-rw-r--r-- 1 moko moko 66469 oct.   1 13:06 123.Png
-rw-r--r-- 1 moko moko  3756 oct.   1 15:15 456.jpg
-rw-r--r-- 1 moko moko 14465 oct.   1 13:06 456.PNG
-rw-r--r-- 1 moko moko  3458 oct.   1 15:15 photo d'ânes gris.jpg
-rw-r--r-- 1 moko moko 15414 oct.   1 13:06 photo d'ânes gris.png
drwxr-xr-x 2 moko moko  4096 oct.   1 15:15 png

/home/moko/bureau/test3/png:
total 20
-rw-r--r-- 1 moko moko  3458 oct.   1 15:15 images d'agneaux tavelés.jpg
-rw-r--r-- 1 moko moko 15414 oct.   1 13:06 images d'agneaux tavelés.png
moko@pc:~$

On constate que les espaces et les apostrophes ont été correctement traitées.  smile


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#12 Le 01/10/2019, à 14:46

Postmortem

Re : convertir des images en .heic en .jpg par lot [résolu]

Salut,

Pas besoin de find, il faut juste penser aux guillemets ; en reprenant la commande de nam1962, ça donne donc :

cd le_bon_répertoire
for file in *.heic; do heif-convert "$file" "${file/%.heic/.jpg}"; done

Edit :
Et si on veut que ça descende dans les sous-répertoires :

cd le_bon_répertoire
shopt -s globstar
for file in **/*.heic; do heif-convert "$file" "${file/%.heic/.jpg}"; done

Dernière modification par Postmortem (Le 01/10/2019, à 14:49)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#13 Le 01/10/2019, à 15:35

moko138

Re : convertir des images en .heic en .jpg par lot [résolu]

Merci Postmortem !
Mais j'ai l'impression que ta commande traite exclusivement les fichiers *.heic dont l'extension est toute en minuscules.
Je me trompe ?


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#14 Le 01/10/2019, à 16:16

Postmortem

Re : convertir des images en .heic en .jpg par lot [résolu]

Oui, tu as raison.
Pour que la casse ne soit pas prise en compte :

shopt -s globstar nocasematch nocaseglob
for file in /le/bon/répertoire/**/*.heic; do heif-convert "$file" "${file/%.heic/.jpg}"; done

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#15 Le 01/10/2019, à 16:56

moko138

Re : convertir des images en .heic en .jpg par lot [résolu]

Super !
Merci Postmortem !  smile


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#16 Le 01/10/2019, à 17:49

moko138

Re : convertir des images en .heic en .jpg par lot [résolu]

Euh...
Si je tente une conversion de .png en .jpg, ça ne traite que les .png en minuscules :

moko@pc:~/bureau/test31$ shopt -s globstar nocasematch nocaseglob
moko@pc:~/bureau/test31$ 

moko@pc:~/bureau/test31$ for file in ~/bureau/test31/**/*.png; do convert "$file" "${file/%.png/.jpg}"; done
moko@pc:~/bureau/test31$ 
moko@pc:~/bureau/test31$ ls -lAR
.:
total 108
-rw-r--r-- 1 moko moko 66469 oct.   1 18:34 123.Png
-rw-r--r-- 1 moko moko 14465 oct.   1 18:34 456.PNG
-rw-r--r-- 1 moko moko  3458 oct.   1 18:34 photo d'ânes gris.jpg
-rw-r--r-- 1 moko moko 15414 oct.   1 13:06 photo d'ânes gris.png
drwxr-xr-x 3 moko moko  4096 oct.   1 16:31 png2

./png2:
total 20
-rw-r--r-- 1 moko moko 15414 oct.   1 18:34 images d'agneaux tavelés.PNG
drwxr-xr-x 2 moko moko  4096 oct.   1 18:34 rep3

./png2/rep3:
total 20
-rw-r--r-- 1 moko moko  3458 oct.   1 18:34 les chats tigrés d'Annie.jpg
-rw-r--r-- 1 moko moko 15414 oct.   1 13:06 les chats tigrés d'Annie.png
moko@pc:~/bureau/test31$

%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#17 Le 01/10/2019, à 18:02

moko138

Re : convertir des images en .heic en .jpg par lot [résolu]

Bon, ça marche avec ça :

shopt -s globstar nocasematch nocaseglob
for file in ~/bureau/test31/**/*.png; do convert "$file" "${file/%.[pP][nN][gG]/.jpg}"; done

  Donc j'imagine que pour les .HeiC, l'alternative à

cd le-bon-répertoire && find . -type f -iname '*.heic' -print0 | xargs -0 heif-convert

est

shopt -s globstar nocasematch nocaseglob
for file in /le/bon/répertoire/**/*.heic; do heif-convert "$file" "${file/%.[hH][eE][iI][cC]/.jpg}"; done

%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#18 Le 01/10/2019, à 19:32

Postmortem

Re : convertir des images en .heic en .jpg par lot [résolu]

Tu as quelle version de bash ?
Quand j'ai testé, je n'avais utilisé que nocaseglob au départ et ça me donnait le même résultat que toi. Et quand j'ai rajouté nocasematch, la substitution était bien faite quelque soit la casse.

Edit : si tu es obligé d'utiliser les crochets, nocasematch ne sert à rien.

Dernière modification par Postmortem (Le 01/10/2019, à 19:33)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#19 Le 01/10/2019, à 19:35

kamaris

Re : convertir des images en .heic en .jpg par lot [résolu]

Oui, ça doit être une question de version de bash :

https://tiswww.case.edu/php/chet/bash/NEWS a écrit :

This is a terse description of the new features added to bash-4.4 since
the release of bash-4.3.  As always, the manual page (doc/bash.1) is
the place to look for complete descriptions.
[…]
n.  GLOBIGNORE, the pattern substitution word expansion, and programmable
    completion match filtering now honor the value of the `nocasematch' option.

@moko138 : Ne serais-tu pas en bash 4.3 (sous ubuntu 16.04 peut-être, comme pingouinux ici : https://forum.ubuntu-fr.org/viewtopic.p … #p22147155 ?)

Hors ligne

#20 Le 01/10/2019, à 22:25

moko138

Re : convertir des images en .heic en .jpg par lot [résolu]

Bien vu, les gars ! La version de bash avec laquelle je tourne en ce moment est la 4.2.


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#21 Le 03/02/2020, à 18:19

Launay

Re : convertir des images en .heic en .jpg par lot [résolu]

Merci j'ai converti mes images .HEIC en .JPG

Hors ligne

#22 Le 31/01/2021, à 13:05

charles8

Re : convertir des images en .heic en .jpg par lot [résolu]

Très bien Nam, EXCELLENT!!!!

Hors ligne

#23 Le 13/05/2021, à 21:59

Vu

Re : convertir des images en .heic en .jpg par lot [résolu]

Merci, la discussion m'a bien aidé pour convertir des photos issues d'un iPhone.


Ubuntu 12.04

Hors ligne

#24 Le 14/05/2021, à 09:50

Tawal

Re : convertir des images en .heic en .jpg par lot [résolu]

Hello,

moko138 a écrit :

Donc j'imagine que pour les .HeiC, l'alternative à

cd le-bon-répertoire && find . -type f -iname '*.heic' -print0 | xargs -0 heif-convert

est

shopt -s globstar nocasematch nocaseglob
for file in /le/bon/répertoire/**/*.heic; do heif-convert "$file" "${file/%.heic/.jpg}"; done

En supposant la bonne version de bash.

Si je puis me permettre,ces 2 versions sont "équivalentes" dans le sens où le résultat est strictement identique.
Mais pas dans le fonctionnement/traitement.
Le boucle for va traiter un à un les fichiers trouvés par le glob et lancer un processus heif-convert à chaque itération. Ce qui peut être lent avec de nombreux fichiers à traiter.
La solution find est pas mal non plus et plus efficiente si la commande heif-convert peut prendre plusieurs arguments et donc du coup lance un seul processus heif-convert pour plusieurs fichiers. Ce qui la rend plus rapide sur de grand nombres de fichiers à traiter.
Et la commande find peut prendre une autre forme (si la commande heif-convert prend plusieurs arguments) :

cd /le/bon/répertoire/ && find . -type f -iname '*.heic' -execdir heif-convert '{}' \+

Ce qui évite un pipe

J'espère n'avoir pas dit de con@#!$%? tongue

Edit:
si la commande heif-convert ne peut pas traiter plusieurs fichiers à la fois, alors les 2 versions sont équivalentes, sauf sur l'ordre de traitement des fichiers (qui peut être contrôlé par find).

Dernière modification par Tawal (Le 14/05/2021, à 09:55)


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#25 Le 20/08/2022, à 23:35

Panorama71

Re : convertir des images en .heic en .jpg par lot [résolu]

Bonjour;
Lorsque je me place sur le bon répertoire et que j'exécute j'ai le message "Input file is not an HEIF/AVIF file"...
Et quand j'exécute "for file in *.heic; do heif-convert $file ${file/%.heic/.jpg}; done", seules quelque photos sont converties....
Merci pour votre éventuelle aide...

Hors ligne