Est_il possible d'alléger des photos par VBA ?

rounil09

XLDnaute Occasionnel
Bonjour la liste,

Peut-on alléger des photos par VBA ?
Je voudrais passer des photos JPG de 1000 ko environ à 20 ko environ.
 

Staple1600

XLDnaute Barbatruc
Re : Est_il possible d'alléger des photos par VBA ?

Re


S'il suffit d'un clic pour lancer une macro EXCEL qui peut faire en quelques secondes pourquoi s'en priver ?
Parce que Windows sait le faire tout seul (à partir d'XP)
ou parce qu'il existe des logiciels qui font cela en mode "batch"
(traitement par lot)

Et je ne suis pas sur qu'Excel fasse cela en "quelques secondes".

(Et tu oublies le temps à écrire le code VBA )

EDITION: Bonsoir Robert, carcharodon-carcharias
 
Dernière édition:

MichelXld

XLDnaute Barbatruc
Re : Est_il possible d'alléger des photos par VBA ?

Bonjour à tous, ...;o)

Un exemple pour redimensionner une image par VBA :
La configuration minimale nécessaire: Windows XP (je n'ai pas testé avec Win7)


Utiliser la librairie Windows Image Acquisition en VBA


Code:
Sub redimensionnerImage()
    Dim Img As WIA.ImageFile, IP As WIA.ImageProcess
    
    'Création conteneur pour l'image à manipuler
    Set Img = CreateObject("WIA.ImageFile")
    'Création du gestionnaire de filtre
    Set IP = CreateObject("WIA.ImageProcess")
    
    'Chargement de l'image dans le conteneur
    Img.LoadFile "C:\fourmiz.JPG"
    
     'Ajoute le filtre pour redimensionner l'image (Scale)
        IP.Filters.Add IP.FilterInfos("Scale").FilterID
        'Définit la largeur maxi pour le redimensionnement
        IP.Filters(1).Properties("MaximumWidth") = 90
        'Définit la hauteur maxi pour le redimensionnement
        IP.Filters(1).Properties("MaximumHeight") = 90
        'remarque :
        'Les proportions sont conservées. Le filtre prend en compte
        'les ratios et adapte la taille pour ne pas dépasser les valeurs maxi définies.
        
    'Application du filtre à l'image
    Set Img = IP.Apply(Img)
    'Enregistre l'image redimensionnée
    Img.SaveFile "C:\fourmizThumbnail.JPG"
End Sub

bon week end
michel
 

MJ13

XLDnaute Barbatruc
Re : Est_il possible d'alléger des photos par VBA ?

Bonjour à tous


J'utilise les codes de Michel (MicheXLD que je salue) avec la wia , et c'est vrai que c'est très puissant :).

Pa contre sur XL2007, vous pouvez dificilement mettre plus de 10000 images car Il accepte difficilement plus de 10000 objets, contrairement à Xl 2003, ou je pouvais en mettre 50 000. Bien sur dans ce cas, le fichier est assez lourd ;).

Peut-ête sous XL 2010.
 

Staple1600

XLDnaute Barbatruc
Re : Est_il possible d'alléger des photos par VBA ?

Bonjour le fil

...Et même de créer des droplets, petit autoexécutable ...

Ô Grand JNP_Obi, peux-tu m'expliquer , à moi (petit scarabée), ce que c'est ce petit exécutable que tu nommes droplet ?
(Je n'ai pas ce matin le temps de googler la chose, mais juste assez de temps pour un petit passage sur XLD)

J'essaierai ce week-end le code de MichelXLD sur un PC (XP+Excel 2000) dasn un répertoire de plus de 2000 images) pour voir si l'assertion rounil09 de était finalement juste au niveau des secondes ;)

Allez zou je me sauve en Normandie, bonne journée à tous, bon week-end.
 

JNP

XLDnaute Barbatruc
Re : Est_il possible d'alléger des photos par VBA ?

Re :),
Ô Grand JNP_Obi, peux-tu m'expliquer , à moi (petit scarabée), ce que c'est ce petit exécutable que tu nommes droplet ?
(Je n'ai pas ce matin le temps de googler la chose, mais juste assez de temps pour un petit passage sur XLD)
Tout simplement, sous Photoshop, il est possible, une fois un script enregistré (redimensionnement de l'image par exemple) d'aller dans Fichier -> Automatisation -> Traitement par lot... de sélectionner un dossier à traiter et un dossier de sortie (qui peuvent être les mêmes).
Si à la place, on va dans Fichier -> Automatisation -> Créer un droplet... il suffit de sélectionner le script et l'emplacement et le nom du droplet. A ce moment là, un raccouci est créé et il suffit de glisser les photos sur le droplet pour qu'elles soient traitées.
Attention au calva, c'est aussi dangereux que le saké :D...
Bon WE :cool:
 

MJ13

XLDnaute Barbatruc
Re : Est_il possible d'alléger des photos par VBA ?

Re , Bonjour Staple, Jean-Noël

Jean-Noël: Photoshop :eek:. Mais tout le monde n'a pas les moyens de se l'offrir (il existe peut-être une version en ligne il me semble, mais jamais testé :confused:).

Sinon si vous ne voulez pas trop vous prendre la tête, Irfan view (taper B) ou XNview, il le font sans problèmes et en plus, c'est gratuit :).
 

JNP

XLDnaute Barbatruc
Re : Est_il possible d'alléger des photos par VBA ?

Re :),
Jean-Noël: Photoshop :eek:. Mais tout le monde n'a pas les moyens de se l'offrir (il existe peut-être une version en ligne il me semble, mais jamais testé :confused:).
Entièrement d'accord, Michel ;). Mais notre ami avait mis
rounil09 à dit:
Justement pour m'éviter de le faire par GIMP ou Photoshop.
d'où nos propositions :p.
Pour complèter, en PJ, un petit script et un droplet (il faut charger le script avant d'utiliser le droplet il me semble). L'avange de passer par Photoshop, c'est que j'en profite pour corriger les niveaux et piquer la photo :D.
Pour ceux qui veulent aller plus loin, Photoshop (comme Illustrator et InDesign) supporte VBScript et JSScript, la doc se situe ici : C:\Program Files (x86)\Adobe\Adobe Utilities\ExtendScript Toolkit CS4\SDK\French et se nomme Adobe Intro to Scripting.pdf.
Bon WE :cool:
 

Pièces jointes

  • Test JNP XLD.zip
    74.4 KB · Affichages: 26

MJ13

XLDnaute Barbatruc
Re : Est_il possible d'alléger des photos par VBA ?

Re

Voici comment simplement configurer Irfan View pour retraiter les images (je l'ai utilisé pour pouvoir les mettre ici).

En plus il recrée les dossiers si besoin :).

162260d1285407910-est_il-possible-dalleger-des-photos-par-vba-irfan1.jpg
 

Pièces jointes

  • Irfan1.jpg
    Irfan1.jpg
    45.5 KB · Affichages: 260
  • Irfan2.jpg
    Irfan2.jpg
    40.6 KB · Affichages: 83
  • Irfan3.jpg
    Irfan3.jpg
    32.2 KB · Affichages: 76

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Est_il possible d'alléger des photos par VBA ?

Bonjour à tous,

à tester: Visualizer Photo Resize

gratuit et freeware ici:
Tlcharger Visualizer Photo Resize - gratuit -

il permet de redimensionner les images (photos) mais également de "tatouer" les photos en y mettant un logo ou du texte
Performances: 500 photos traitées (redimensionnées et tatouées)en +/- 10 minutes

Attention, il ne permet pas les retouches d'images comme le font Photoshop, Corel, PaintShop, ..........

Je l'utilise régulièrement et n'ai jamais rencontré de problèmes

Photo Resize Magic est semblable mais moins performant

à+
Philippe
 

Issimo

XLDnaute Nouveau
Re : Est_il possible d'alléger des photos par VBA ?

Ce sujet est très intéressant pour moi puisque ça va peut-être me permettre d'améliorer mon application "trombi facile" qui crée des trombinoscopes dans Excel.

Je vais tester la solution vba mais pour ceux qui veulent un traitement plus pointu en mêlant à la fois du redimensionnement et du recadrage, je pense que la solution se trouve hors d'Excel. Vous pouvez lire les infos que j'ai mis sur mon site :

Ce lien n'existe plus

Ce lien n'existe plus
 

Discussions similaires

Réponses
12
Affichages
446
Réponses
8
Affichages
284

Statistiques des forums

Discussions
312 216
Messages
2 086 350
Membres
103 194
dernier inscrit
rtison