XL 2016 VBA Windows Image Acquisition & fichiers RAW

Dudu2

XLDnaute Barbatruc
Bonjour les Excellents

Sur Windows 7 j'utilise la VBA Reference Microsoft Windows Image Acquisition Library V2.0 pour convertir des images sur la base de ces exemples très bien faits.

Pour des formats d'images "classiques" BMP, GIF, JPEG, PNG, TIFF tout se passe bien.

Dès lors que l'image à convertir est un format RAW d'un fabriquant (.cr2 ou .cr3 pour Canon, .arw pour Nikon, etc...) ça plante.
Dans Windows 7 ça semble normal car les Codecs de ces formats ne sont pas intégrés. Par exemple les Thumbnails de ces images RAW ne s'affichent pas dans l'explorateur Windows.
Dans Windows 10, alors que l'explorateur Windows les affiche, et donc que Windows connait les Codecs, ça plante aussi !

Un point de départ ? https://docs.microsoft.com/en-us/windows/win32/wia/-wia-startpage

J'aimerais:
- d'une part que des Excellents ayant Windows 10 et un Canon ou Nikon essaient d'utiliser le fichier joint pour essayer des conversions de RAW en JPEG et indiquer le résultat obtenu,
- d'autre part que si des Excellents ont eu à faire face à cette problématique qu'ils donnent leurs points de vue.

Merci par avance.
 

Pièces jointes

  • Convertir image en JPEG.xlsm
    27.1 KB · Affichages: 32

patricktoulon

XLDnaute Barbatruc
Bonjour @Dudu2
WIA ne prend pas en charge les fichiers Raw me semble t il d'aussi loin que je me souvienne
ne pas confondre acquisition et traitement
alors en effet avec wia tu peux prendre une photo d'une camera ou appareil photo moyennant les drivers de celui ci ,mais mais l’acquisition se fait direct dans un des 5 formats que gere WIA
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
je travaille beaucoup avec gimp il est impressionnant de toute ses possibilités
il est assez complexe aussi c'est le revers de la médaille
en graphique il est lourd aussi vu que c'est en fait plusieurs petite app qui s'ouvre sans parler des scriptFU quand tu en fait des dizaine il faut qu'il les charge tous
perso pour moi c'est un sérieux concurrent a photo shop et il est gratuit ce qui ne gache rien ;)
en gros c'est le VLC de la photo et image
 

Dudu2

XLDnaute Barbatruc
Ok c'est super. Il y a une DLL qu'on peut inclure dans les références du VBA et exécuter des fonctions comme on lancerait une ligne de commande !
 

Dudu2

XLDnaute Barbatruc
Yes, of course !
1619425342706.png

Merci mon @patricktoulon.
Tu as résolu un problème complexe.
 

patricktoulon

XLDnaute Barbatruc
re
attention @Dudu2
pour ceux qui tourne sur un excel 32 bits il faut installer le com 32
sinon le com n'est pas dispo dans les librairies pour excel 32

64 bits
ImageMagick-7.0.11-9-Q16-x64-static.exe

32 bits
imagemagick-16bits_7-0-11-8_fr_12555_32.exe

après c'est simple
VB:
Sub Convertimg()
Dim Source As String
Dim Destination As String
Source = "H:\fond_d_ecran\animaux\cheval1.jpg"
Destination = "H:\fond_d_ecran\animaux\cheval1 convertie.png"
Set img = CreateObject("ImageMagickObject.MagickImage.1")
img.Convert Source, Destination
End Sub
;)
bon c'est moins lourd pour vba quand on le fait en ligne de commande appeler par un wscript.shell.run
sur un script vbs créer dynamiquement
ou carrément lancer la ligne de commande
dans le sens ou une fois la commande lancé vba est libéré travail fini ou pas
c'est le CMD ou vbs qui fait le boulot
pratique pour convertir en serie
;)
 

Dudu2

XLDnaute Barbatruc
Pour l'instant je butte sur un problème en mode DLL.
VB:
Sub a()
    Dim VarName As New MagickImage
    Dim Source As String
    Dim Destination As String
    
    Source = "H:\Téléchargements\xxx.cr2"
    Destination = "H:\Téléchargements\xxx.jpg"
    
    If Len(Dir(Destination)) > 0 Then Kill Destination
    
    Call VarName.Convert(Source, Destination)
End Sub

1619426974400.png
1619427012802.png
 

Pièces jointes

  • 1619427003270.png
    1619427003270.png
    1.6 KB · Affichages: 11

Membres actuellement en ligne

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 105
dernier inscrit
Joffrette