Aussi disponible en : English · Español · Português · العربية
Extraire les images d’un PDF
Ouvrez un PDF, voyez tous les objets image qu’il contient et téléchargez-les séparément ou d’un seul coup, sans envoyer le document où que ce soit.
Qu’est-ce qu’extraire les images d’un PDF ?
Un PDF ne stocke pas les images comme le fait une page web. Chaque image existe dans le fichier en tant qu’objet à part entière — un bloc d’échantillons compressés avec sa largeur, sa hauteur, son espace colorimétrique et sa profondeur de bits — et la page qui l’affiche ne contient que l’instruction de dessiner cet objet à une certaine position et à une certaine taille. Extraire les images, c’est aller chercher ces objets directement, plutôt que de faire une capture d’écran ou de redessiner la page.
C’est cette distinction qui rend l’opération intéressante. Une capture d’écran vous donne l’image à la taille où la page l’affichait, aplatie avec tout ce qui se trouvait par-dessus. Atteindre l’objet stocké vous donne l’image à sa résolution complète, détachée du texte et de la mise en page qui l’entourent.
Cette page lit le document dans votre navigateur, répertorie tous les objets image qu’elle trouve et vous laisse les télécharger un par un ou ensemble dans un ZIP. Rien n’est envoyé : le document ne quitte pas votre machine.
Comment extraire les images
- Déposez votre PDF sur la page. Faites glisser le fichier dans la zone prévue, ou cliquez sur « Choisir un PDF » pour le sélectionner dans une boîte de dialogue. Un fichier à la fois, jusqu’à 100 Mo, lu sur place plutôt qu’envoyé quelque part.
- Lisez le récapitulatif. Un panneau indique la taille du fichier, combien d’objets image le document contient, combien peuvent être extraits et combien ressortiront tels que l’auteur les a intégrés plutôt qu’en copie réencodée.
- Téléchargez ce dont vous avez besoin. Chaque image s’affiche avec une vignette, sa taille en pixels, le nombre d’octets qu’elle occupe dans le PDF et une étiquette précisant s’il s’agit d’un JPEG d’origine ou d’un PNG réencodé. Utilisez le bouton de téléchargement de l’une d’elles, ou « Tout télécharger en ZIP » pour emporter l’ensemble.
Ce que vous récupérez réellement
Il y a deux cas, et un seul vous rend le fichier de l’auteur intact. Un JPEG placé dans un PDF est stocké sous forme de flux dont les octets constituent déjà un fichier JPEG complet : il peut donc être écrit tel quel, octet pour octet ce qui a été intégré, sans décodage ni réencodage. Ceux-là portent l’étiquette JPEG d’origine.
Tout le reste est stocké sous forme d’échantillons compressés bruts et non de fichier : il n’y a aucun PNG ni GIF à recopier dans un PDF, seulement des données de pixels et la description de la façon de les lire. Ces images sont décompressées, leur prédiction est annulée, puis elles sont reconstruites en PNG. Le PNG étant sans perte, aucun pixel ne change au passage, mais les octets obtenus sont ceux de cet outil et non ceux de l’auteur — d’où l’étiquette PNG réencodé.
Il faut préciser que le cas réencodé est le cas courant, pas l’exception. En mesurant quatre PDF publiés réels lors de la construction du compresseur de ce site, 98 % des octets d’image étaient des échantillons compressés bruts et non du JPEG. Un outil promettant de vous rendre les fichiers d’image d’origine se tromperait donc la plupart du temps, et c’est pourquoi cette page distingue les deux cas.
Le récapitulatif révèle autre chose : une image utilisée sur de nombreuses pages est un seul objet dans le fichier, et elle est listée une fois. L’outil parcourt les objets du document et non ses pages, si bien qu’un logo répété sur quarante pages apparaît comme une entrée et non comme quarante copies.
Les limites, honnêtement
La plus importante : ce qui ressort est l’image telle qu’elle est stockée, et non la portion que vous voyez sur la page. Un PDF dessine chaque image via une transformation, de sorte que la version visible peut être rognée par un chemin de détourage, redimensionnée dans n’importe quelle boîte, pivotée ou masquée en une forme. Ce que vous téléchargez est l’objet entier à sa taille en pixels d’origine : généralement plus grand qu’il n’en avait l’air, et parfois assez différent de la zone qui était visible.
La transparence réserve une surprise du même ordre. Lorsqu’une image a des bords adoucis ou un fond détouré, cette transparence réside le plus souvent dans un objet en niveaux de gris distinct, qui sert de couche alpha. Cet outil répertorie et extrait ces masques comme des fichiers à part, étiquetés, plutôt que de les combiner avec l’image à laquelle ils appartiennent : une image transparente ressort donc souvent en deux fichiers, et non en un seul déjà détouré.
Certains formats ne peuvent pas être décodés dans un navigateur, et chacun est listé avec son motif plutôt que d’être écarté en silence : JPEG 2000, les codecs fax et bilevel comme CCITT et JBIG2, les images CMJN, les pochoirs 1 bit, celles qui portent un remappage de couleurs maison, et toute image dont la largeur ou la hauteur vaut zéro.
Enfin, cet outil lit des objets matriciels intégrés. Une page dessinée entièrement en instructions vectorielles — un graphique, un logo tracé en courbes, un schéma — ne contient aucun objet image à extraire, et l’outil signalera honnêtement n’en avoir trouvé aucun plutôt que de rastériser la page et de présenter le résultat comme une image extraite.
Pourquoi est-ce gratuit ?
Le document est lu dans l’onglet de votre navigateur. Il n’y a ni téléversement, ni file d’attente, ni serveur qui travaille : aucun coût par fichier à répercuter, et aucune raison de vous demander un compte avant de vous laisser ouvrir votre propre fichier.
Cela signifie aussi aucun filigrane sur ce que vous téléchargez et aucune limite au nombre de fichiers traités. Même le ZIP est assemblé dans le navigateur, en mode stockage : le PNG et le JPEG étant déjà compressés, les recompresser coûterait du temps réel pour ne presque rien gagner.