Extraire les Images d'un PDF
Outil en ligne gratuit pour extraire toutes les images d'un PDF. Sortie PNG, JPEG ou WebP, taille minimale, dédoublonnage, téléchargement ZIP. Sans upload.
À propos d'Extraire les Images d'un PDF
Extraire les Images d'un PDF est un outil exécuté uniquement dans le navigateur qui sort toute image matricielle intégrée dans un document PDF et permet de les enregistrer individuellement ou regroupées dans une archive ZIP. L'extracteur utilise PDF.js de Mozilla pour analyser chaque page, parcourt la liste d'opérateurs de la page à la recherche des commandes paintImageXObject et paintJpegXObject, résout ces références dans le magasin d'objets de la page, puis reconstruit chaque image sur un canvas HTML au format PNG, JPEG ou WebP choisi. Comme tout le pipeline s'exécute localement dans votre onglet, les PDF sensibles (contrats, pièces d'identité scannées, rapports internes, dossiers médicaux) ne quittent jamais l'appareil, aucun upload n'est effectué et aucun serveur ne stocke votre fichier. Le curseur de taille minimale permet d'ignorer les petites icônes décoratives et en-têtes ; l'interrupteur de dédoublonnage hache chaque image avec SHA-256 pour qu'un logo répété sur chaque page ne soit enregistré qu'une seule fois. Les formats de sortie sont un compromis entre qualité et taille : PNG préserve la transparence et la qualité sans perte (idéal pour captures, schémas, traits) ; JPEG produit des fichiers 2 à 5 fois plus petits pour les photos au prix d'une légère perte de qualité ; WebP surpasse souvent les deux grâce aux codecs modernes. La plupart des utilisateurs obtiennent des extractions propres à pleine résolution depuis des PDF standards ; le seul cas où l'extraction est impossible est lorsque les images sont chiffrées en JBIG2 ou par des filtres de flux propriétaires, ce qui est rare dans les documents courants.
Comment cet outil trouve-t-il les images dans un PDF ?
Les PDF stockent les images sous forme de flux XObject référencés depuis le flux de contenu de chaque page. Nous utilisons PDF.js pour analyser le document et appelons page.getOperatorList(), qui renvoie la séquence des commandes de dessin. Nous parcourons cette liste à la recherche des opcodes paintImageXObject, paintImageXObjectRepeat, paintJpegXObject et paintInlineImageXObject ; chacun porte le nom d'un objet image. Nous cherchons ensuite ce nom dans page.objs, qui renvoie un ImageBitmap déjà décodé ou un buffer de pixels brut avec son étiquette d'espace colorimétrique. Le buffer est peint sur un canvas HTML à la résolution native de l'image et exporté via canvas.toBlob() en PNG, JPEG ou WebP. Cette approche capture toute image en ligne et XObject standard utilisée par un PDF ; elle ne capture pas les graphismes vectoriels dessinés avec des opérateurs de chemin, car ce ne sont pas des images matricielles.
Les images extraites sont-elles à la résolution originale complète ?
Oui. Nous décodons chaque image à ses dimensions natives en pixels telles qu'intégrées dans le PDF, et non à la taille de rendu en page. Ainsi une photographie de 3000x2000 placée sur un quart d'une A4 dans le PDF est extraite en 3000x2000 pixels complets. Si un JPEG a été stocké en qualité 70 dans le PDF, vous ne pouvez pas récupérer les détails déjà compressés, mais vous obtenez exactement les octets que le PDF portait. Pour les PDF où la même photo est sous-échantillonnée à plusieurs résolutions (miniature vs. pleine page), l'outil extrait chaque variante, vous pouvez donc voir deux ou trois quasi-doublons ; le commutateur de dédoublonnage peut les fusionner par hash SHA-256 s'ils sont identiques octet à octet, mais pas s'ils diffèrent en résolution.
Pourquoi l'outil ignore-t-il certaines images et comment fonctionne la taille minimale ?
Le curseur de taille minimale permet d'ignorer les images matricielles en dessous d'un seuil de largeur ou de hauteur (32 pixels par défaut). C'est utile parce que les PDF regorgent de minuscules graphismes décoratifs : puces, bordures de page, rasters de sous-ensembles de polices, filigranes. Régler le seuil à 100 ou 200 filtre généralement tout ce qui n'est pas une vraie photo, un schéma, un graphique ou une page scannée. Mettez 0 si vous voulez absolument toutes les images, y compris les espaceurs invisibles et les pixels 1x1 d'anticrénelage. La vérification utilise les dimensions natives de l'image, pas celles d'affichage, donc un logo intégré à 400x400 passera même s'il apparaît minuscule dans un coin.

Fonctionne-t-il sur les PDF chiffrés ou protégés par mot de passe ?
Pour les PDF protégés par mot de passe propriétaire (qui restreignent l'édition mais autorisent la lecture), oui — PDF.js les ouvre de manière transparente. Pour les PDF protégés par mot de passe utilisateur exigeant un mot de passe à l'ouverture, le document échouera à l'analyse et vous verrez une erreur ; déverrouillez-le d'abord avec l'outil Déverrouiller PDF de WuTools en utilisant le bon mot de passe. De nombreux PDF scannés ne sont pas une image par page mais contiennent de vrais XObjects matriciels que nous pouvons extraire ; en revanche, les PDF avec des scans encodés en JBIG2 (courant dans les archives compressées) peuvent s'afficher correctement dans les visionneuses, mais PDF.js ne peut pas toujours décoder JBIG2 en buffer de pixels, et ces images seront alors manquées. Les documents modernes de Word, LibreOffice, InDesign, l'impression-vers-PDF du navigateur et la plupart des applis de scan utilisent des formats que nous gérons pleinement.
Mon PDF est-il téléchargé sur un serveur ?
Non. Le PDF est lu dans un ArrayBuffer JavaScript dans l'onglet de votre navigateur et analysé entièrement côté client par PDF.js. Le décodage des images, l'exportation sur canvas, le hachage pour le dédoublonnage et le packaging ZIP s'exécutent sur votre processeur. Le seul trafic réseau est le téléchargement de la bibliothèque PDF.js et de son worker depuis un CDN public au premier chargement (puis mis en cache). Vous pouvez le vérifier en regardant l'onglet Network du DevTools avant de cliquer sur Extraire : aucune requête d'upload ne sera effectuée. Cela rend l'outil sûr pour les PDF confidentiels (rapports financiers, NDA, contrats juridiques, dossiers médicaux, présentations internes) où l'upload vers un SaaS tiers serait inacceptable.
Quelle est la taille maximale de PDF que je peux traiter ?
En pratique, vous pouvez extraire à partir de PDF jusqu'à environ 200 Mo sur un poste de travail moderne doté de 8 Go de RAM, et jusqu'à 50 Mo sur la plupart des téléphones. Le goulot d'étranglement est la mémoire du navigateur, pas le disque : PDF.js doit conserver le document analysé plus les buffers de pixels décodés de chaque image pendant qu'il traite les pages. Si vous avez un très gros PDF (par exemple une archive d'images de 1 Go), divisez-le d'abord avec l'outil Diviser PDF, exécutez l'extraction sur chaque morceau et combinez les ZIP résultants. L'outil traite les pages strictement dans l'ordre et libère la mémoire de chaque page à la fin, donc le pic de mémoire est à peu près proportionnel à la plus grande image individuelle, et non à la taille totale du document.
