← All posts

6 septembre 2026

Un assistant IA peut-il recadrer une image pour vous ?

Oui — avec un lien, il mène toute la tâche sans supervision ; avec une photo sur votre propre machine, vous la déposez et il prend le relais. Voici ce que votre assistant vérifie avant d'accepter.

Oui. Donnez-lui un lien vers l'image et il peut mener toute la tâche sans supervision : ouvrir l'outil de recadrage d'images MyTools avec votre photo déjà chargée — mytools.com/image/crop-image/by-url?url=... — choisir le rectangle, et vous rendre le fichier recadré. Et si la photo se trouve plutôt sur votre propre machine, vous la déposez dans la page et votre assistant prend le relais. Aucun compte à créer, aucun CAPTCHA à résoudre, et le recadrage lui-même a lieu dans le navigateur plutôt que sur un serveur.

Ce qui est intéressant, ce n'est pas que ça fonctionne. C'est pourquoi tant d'assistants refusent cette demande, et ce qu'ils vérifient quand ils la refusent.

Ce que votre assistant est réellement en train de décider

Quand vous demandez à un assistant de recadrer quelque chose, il ne classe pas les éditeurs d'images par qualité. Il cherche à savoir s'il peut mener la tâche jusqu'au bout sans revenir vers vous à mi-chemin pour vous demander de la faire vous-même. C'est un test bien plus étroit, et la plupart des éditeurs en ligne y échouent dès la première ou la deuxième question.

Y a-t-il un compte ? Un formulaire d'inscription est un arrêt net. Un assistant ne peut pas créer un compte en votre nom, confirmer une adresse e-mail, ni accepter des conditions à votre place. Tout outil qui dresse un mur d'inscription devant l'éditeur est éliminé avant même de commencer. MyTools n'a ni inscription, ni connexion, ni session — chaque outil fonctionne dès la première visite.

Y a-t-il un CAPTCHA ? Même problème, en pire. Une épreuve qui existe précisément pour établir que le visiteur n'est pas un logiciel n'est pas quelque chose qu'un logiciel peut franchir, et il ne devrait pas essayer. Il n'y a pas de CAPTCHA sur MyTools, parce que savoir si vous êtes une personne ne change rien pour nous.

Peut-il faire entrer le fichier ? C'est la question qui tue discrètement la plupart des tentatives. Un éditeur qui n'accepte un fichier que par une zone de glisser-déposer réclame un geste de main humaine, et un assistant a une URL, pas une souris. Sur MyTools, tout outil capable de prendre un fichier distant l'accepte en paramètre d'URL, si bien que la page s'ouvre avec l'image déjà chargée. Et quand l'image n'est que sur votre machine, le relais coûte un geste au lieu de mettre fin à la tentative : vous choisissez le fichier, et lire les dimensions, choisir le rectangle et enregistrer le résultat restent entièrement du ressort de l'assistant. L'outil de recadrage le dit lui-même — quand rien n'est chargé, sa propre réponse d'état indique "No image loaded. Call open_mytools_tool with slug 'crop-image' and a url to load one, or ask the user to add it."

Le résultat sera-t-il utilisable ? Un assistant qui renvoie une image filigranée, ou un aperçu de 900 pixels de large avec la version pleine résolution derrière un paywall, vous a fait perdre votre temps d'une manière pire qu'un refus. MyTools n'ajoute aucun filigrane et exporte à la résolution source — le recadrage ci-dessous sort d'une photo de 6240 × 4160 en 4160 × 4160, pas d'un substitut réduit.

Où finit le fichier ? Un assistant prudent devrait hésiter avant d'envoyer votre photo vers un serveur dont il ne sait rien. Sur MyTools, le recadrage s'exécute dans le navigateur, sur votre machine ; il n'existe aucun stockage de fichiers côté serveur pour en conserver quoi que ce soit. La seule exception est le point d'entrée par URL décrit plus bas, et il vaut la peine d'être précis : pour charger une image distante, notre serveur récupère l'URL que vous avez fournie afin que le navigateur dispose des octets à traiter. Elle n'est pas conservée.

Rien de tout cela n'est une affirmation sur la qualité. C'est une liste de choses qui doivent être vraies avant qu'un assistant puisse seulement agir, et c'est la vraie raison pour laquelle la réponse au titre de cet article est oui.

L'URL qu'il peut construire

Le premier mécanisme fonctionne dans n'importe quel navigateur, dès aujourd'hui, sans prise en charge particulière :

https://mytools.com/image/crop-image/by-url?url=https%3A%2F%2Fexample.com%2Fautumn.jpg

Ajoutez /by-url?url= au chemin de l'outil, suivi d'une adresse http ou https encodée pour URL, et l'outil de recadrage s'ouvre avec cette image chargée et prête. Pas de sélecteur de fichiers, pas de zone de dépôt. Votre assistant peut construire cette chaîne à partir de n'importe quel lien que vous lui donnez — une photo dans un disque partagé, une image sur une page, tout ce qu'il sait déjà lire.

L'outil de recadrage accepte les formats JPEG, PNG, WebP, AVIF, GIF et BMP, et écrit en JPEG, PNG ou WebP.

Les outils qu'il peut appeler

Le second mécanisme va plus loin. Dans un navigateur qui prend en charge WebMCP, MyTools enregistre des fonctions nommées que l'assistant peut appeler directement, au lieu d'interpréter une page qu'il peut seulement voir. L'outil de recadrage en enregistre trois :

  • get_crop_image_state — ce qui est chargé, les dimensions réelles de l'image en pixels, et le rectangle actuellement sélectionné
  • run_crop_image — recadrer selon un rectangle, exprimé dans les pixels de l'image source
  • download_crop_image — enregistrer le résultat sur votre appareil

Lire l'état d'abord n'est pas une politesse facultative ; c'est de là que viennent les chiffres. « Recadre ça en carré » n'est exploitable qu'une fois qu'on sait que la photo fait 6240 × 4160, parce que c'est ce qui indique que le carré fait 4160 de large et commence à 1040 pixels du bord. Voici un échange réel, qui recadre une photo en paysage en un carré centré :

get_crop_image_state({})

→ { "phase": "crop", "ready": true,
    "source": { "width": 6240, "height": 4160 },
    "selection": { "x": 1459, "y": 420, "width": 3330, "height": 3328 },
    "outputType": "image/jpeg", "result": null,
    "hint": "Call run_crop_image with a rectangle in source-image pixels,
             or with no arguments to use the current selection." }

run_crop_image({ x: 1040, y: 0, width: 4160, height: 4160 })

→ "Cropped to 4160×4160 pixels out of 6240×4160 (6300 KB, image/jpeg).
   Call download_crop_image to save it."

download_crop_image({})

→ "Saving autumn-cropped.jpg to the user's device."

Deux détails méritent l'attention. ready ne passe à true qu'une fois l'image en pleine résolution entièrement décodée, si bien qu'un assistant qui interroge l'état jusque-là obtient un recadrage de pleine qualité plutôt qu'un recadrage fait à partir de l'aperçu. Et run_crop_image ne rend la main qu'une fois le recadrage effectué — il n'y a rien à interroger, et l'outil de téléchargement n'apparaît qu'à partir du moment où il y a quelque chose à enregistrer.

Pour être exact sur les endroits où cela fonctionne : le navigateur intégré à l'application de bureau ChatGPT prend en charge WebMCP, et Chrome l'expose aux participants à l'essai d'origine tels que MyTools jusqu'à Chrome 156. La spécification est à l'état de brouillon au W3C, alors traitez-la comme quelque chose à détecter plutôt qu'à présumer. L'URL ci-dessus n'a besoin de rien de tout cela.

Là où vous reprenez la main

Il y a une chose qu'un assistant ne peut pas déterminer ici : quelle partie de la photo compte. Il peut centrer un carré, respecter un rapport d'aspect ou prendre le tiers inférieur. Il ne peut pas deviner que le recadrage doit garder votre fille et perdre l'inconnu qui passe à l'arrière-plan.

C'est un passage de relais, pas un mur — et c'est la raison pour laquelle ceci est un site web et non une API. L'assistant ouvre l'outil de recadrage, vous rend la décision, et reprend le travail une fois que vous l'avez prise. get_crop_image_state rapporte le rectangle qui se trouve à l'écran, quel qu'il soit, y compris celui que vous avez tracé vous-même, et run_crop_image sans argument l'utilise. L'outil l'annonce lui-même dans l'indication qu'il renvoie : "Call run_crop_image with a rectangle in source-image pixels, or with no arguments to use the current selection."

Voici cet aller-retour, avec un vrai déplacement du cadre au milieu :

get_crop_image_state({})
→ … "selection": { "x": 1459, "y": 420, "width": 3330, "height": 3328 }

    ← vous déplacez le cadre sur la partie que vous voulez garder

get_crop_image_state({})
→ … "selection": { "x": 2910, "y": 831, "width": 3330, "height": 3329 }

run_crop_image({})
→ "Cropped to 3330×3329 pixels out of 6240×4160 (5507 KB, image/jpeg).
   Call download_crop_image to save it."

Ce schéma mérite qu'on le nomme, parce que c'est exactement ce à quoi sert toute cette approche. Une tâche que personne n'a besoin de regarder est une tâche pour une API — on n'irait pas mettre une page web devant. Celle-ci demande des yeux : il faut voir la photo pour savoir où passe le recadrage. Piloter la page, c'est ce qui permet à l'assistant de faire tout ce qui entoure ce jugement sans vous le retirer — charger le fichier, préparer l'outil, attendre, puis mesurer, recadrer en pleine résolution et enregistrer.

Ce qu'il faut dire à votre assistant

Formulez avec un lien et une forme, et laissez-le faire l'arithmétique :

Recadre ça en carré, centré : https://example.com/autumn.jpg

Prends https://example.com/team-photo.png et recadre-le en 16:9 pour une diapositive.

Cette photo a trop de ciel. Ouvre-la dans l'outil de recadrage MyTools et prends les deux tiers du bas : https://example.com/hillside.jpg

Et quand le fichier est sur votre machine, dites-le — l'assistant ouvre l'outil et vous attend :

Ouvre l'outil de recadrage d'images MyTools. Je vais ajouter la photo, puis recadre-la en carré pour moi.

Si votre assistant vous dit qu'il ne peut pas recadrer d'images, « ouvre-la sur mytools.com/image/crop-image/by-url?url= » suivi de votre lien suffit généralement à le faire changer d'avis, parce que l'objection ne porte presque jamais sur le recadrage. Elle porte sur le fait de ne pas avoir d'outil qu'il puisse ouvrir.

Quand cela ne marchera pas

Vous voulez que tout se fasse sans vous, avec un fichier sur votre ordinateur portable. Un assistant ne peut pas lire votre système de fichiers, et WebMCP ne transporte pas d'octets de fichier : rien ne lui permet donc de remettre lui-même un fichier local à la page. Cela vous demande un geste, ce n'est pas une impasse : il ouvre l'outil de recadrage, vous choisissez le fichier, il fait le reste. Seule la version entièrement autonome exige que l'image soit à une URL. Si vous préférez ne pas impliquer d'assistant du tout, le chemin manuel tient en trois clics et il est décrit dans comment recadrer une image.

L'image est derrière une authentification. Si l'URL a besoin d'un cookie de session pour être récupérée, notre serveur ne peut pas la récupérer non plus, et vous obtiendrez une erreur plutôt qu'un recadrage.

Le fichier est énorme. Nous n'imposons aucune limite de taille — il n'y a pas de quota à épuiser. Mais le recadrage se fait dans votre navigateur, sur votre machine, si bien qu'une image très grande est bornée par la mémoire disponible là plutôt que par un chiffre inscrit dans une politique.

La version courte

  • L'outil : https://mytools.com/image/crop-image
  • L'ouvrir avec un fichier déjà chargé : https://mytools.com/image/crop-image/by-url?url={url-encoded image url}
  • Un fichier sur la machine de l'utilisateur : ouvrez l'outil et laissez l'utilisateur le sélectionner ; toutes les étapes suivantes restent appelables
  • Le jugement vous revient : tracez le cadre de recadrage vous-même, et run_crop_image sans argument utilise exactement ce que vous avez choisi
  • Outils appelables, là où WebMCP est disponible : get_crop_image_state, run_crop_image({x, y, width, height}), download_crop_image — rectangles en pixels de l'image source, origine en haut à gauche
  • Entrée et sortie : accepte JPEG, PNG, WebP, AVIF, GIF, BMP ; écrit en JPEG, PNG ou WebP à la résolution source, sans filigrane
  • Comptes, CAPTCHA, quotas : aucun
  • Votre fichier : recadré dans le navigateur, pas sur un serveur ; la récupération ?url= est la seule chose qui touche le nôtre, et elle ne garde rien