← All posts

6 settembre 2026

Un assistente IA può ritagliare un'immagine al posto tuo?

Sì — con un link porta a termine tutto il lavoro senza sorveglianza; con una foto sulla tua macchina la trascini dentro e ci pensa lui. Ecco che cosa controlla il tuo assistente prima di accettare.

Sì. Dagli un link all'immagine e può portare a termine tutto il lavoro senza sorveglianza: aprire il ritagliatore di immagini di MyTools con la tua foto già caricata — mytools.com/image/crop-image/by-url?url=... — scegliere il rettangolo e restituirti il file ritagliato. Se invece la foto è sulla tua macchina, la trascini tu nella pagina e il tuo assistente prosegue da lì. Non c'è nessun account da creare, nessun CAPTCHA da risolvere, e il ritaglio stesso avviene dentro il browser anziché su un server.

La parte interessante non è che funzioni. È il perché così tanti assistenti dicono di no a questa richiesta, e che cosa controllano quando lo fanno.

Che cosa sta decidendo davvero il tuo assistente

Quando chiedi a un assistente di ritagliare qualcosa, non sta classificando gli editor di immagini per qualità. Sta valutando se riesce a portare a termine il lavoro senza tornare da te a metà strada per chiederti di farlo da solo. È un criterio molto più ristretto, e la maggior parte degli editor online lo fallisce alla prima o alla seconda domanda.

C'è un account? Un modulo di iscrizione è uno stop netto. Un assistente non può creare un account per tuo conto, confermare un'email o accettare i termini al posto tuo. Qualsiasi strumento che metta un muro di registrazione prima dell'editor è fuori ancora prima di cominciare. MyTools non ha iscrizione, né login, né sessione — ogni strumento funziona alla prima visita.

C'è un CAPTCHA? Stesso problema, peggiore. Una prova che esiste proprio per stabilire che il visitatore non è un software non è qualcosa che un software possa superare, e non dovrebbe nemmeno provarci. Su MyTools non c'è nessun CAPTCHA, perché per noi non fa alcuna differenza che tu sia una persona.

Riesce a far entrare il file? È questo il punto che, in silenzio, uccide la maggior parte dei tentativi. Un editor che accetta un file solo attraverso una zona di trascinamento sta chiedendo un gesto a una mano umana, e un assistente ha un URL, non un mouse. Ogni strumento di MyTools che può prendere un file remoto lo accetta come parametro di query, così la pagina si apre con l'immagine già caricata. E quando l'immagine è soltanto sulla tua macchina, il passaggio di consegne costa un gesto invece di far naufragare il tentativo: il file lo scegli tu, mentre leggere le dimensioni, scegliere il rettangolo e salvare il risultato restano compiti dell'assistente. È il ritagliatore stesso a dirlo — senza niente di caricato, la sua risposta di stato recita "No image loaded. Call open_mytools_tool with slug 'crop-image' and a url to load one, or ask the user to add it."

Il risultato sarà utilizzabile? Un assistente che restituisce un'immagine con filigrana, o un'anteprima larga 900 pixel con la versione a piena risoluzione dietro un paywall, ti ha fatto perdere tempo in un modo peggiore di un rifiuto. MyTools non aggiunge nessuna filigrana ed esporta alla risoluzione della sorgente — il ritaglio qui sotto esce da una foto di 6240 × 4160 a 4160 × 4160, non da un surrogato ridotto.

Dove finisce il file? Un assistente prudente dovrebbe esitare prima di spingere la tua foto verso un server di cui non sa nulla. Su MyTools il ritaglio gira nel browser, sulla tua macchina; non esiste alcun archivio di file lato server in grado di conservare qualcosa. L'unica eccezione è il punto d'ingresso via URL qui sotto, e vale la pena essere precisi: per caricare un'immagine remota, il nostro server scarica l'URL che hai fornito, così il browser ha i byte su cui lavorare. Non viene conservata.

Niente di tutto questo è un'affermazione sulla qualità. È un elenco di cose che devono essere vere prima che un assistente possa anche solo agire, ed è la vera ragione per cui la risposta al titolo di questo articolo è sì.

L'URL che può costruire

Il primo meccanismo funziona in qualsiasi browser, oggi, senza alcun supporto speciale:

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

Aggiungi /by-url?url= al percorso dello strumento, seguito da un indirizzo http o https codificato per URL, e il ritagliatore si apre con quell'immagine caricata e pronta. Nessun selettore di file, nessuna zona di trascinamento. Il tuo assistente può costruire quella stringa da qualsiasi link tu gli dia — una foto in un'unità condivisa, un'immagine su una pagina, qualunque cosa sappia già leggere.

Il ritagliatore accetta JPEG, PNG, WebP, AVIF, GIF e BMP, e scrive JPEG, PNG o WebP.

Gli strumenti che può chiamare

Il secondo meccanismo va oltre. In un browser che supporta WebMCP, MyTools registra funzioni con un nome che l'assistente può chiamare direttamente, invece di interpretare una pagina che può soltanto vedere. Il ritagliatore ne registra tre:

  • get_crop_image_state — che cosa è caricato, le dimensioni reali in pixel dell'immagine e il rettangolo attualmente selezionato
  • run_crop_image — ritaglia su un rettangolo, espresso nei pixel dell'immagine sorgente
  • download_crop_image — salva il risultato sul tuo dispositivo

Leggere prima lo stato non è una cortesia facoltativa; è da lì che arrivano i numeri. «Ritaglia questa in un quadrato» diventa eseguibile solo quando sai che la foto è 6240 × 4160, perché è questo che ti dice che il quadrato è largo 4160 e comincia 1040 pixel più in là. Ecco uno scambio reale, che ritaglia una foto orizzontale in un quadrato centrato:

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."

Due dettagli da notare. ready diventa vero soltanto quando l'immagine a piena risoluzione ha finito di essere decodificata, così un assistente che interroga lo stato fino a quel momento ottiene un ritaglio a piena qualità e non uno ricavato dall'anteprima. E run_crop_image non restituisce nulla finché il ritaglio non esiste — non c'è niente da interrogare ciclicamente, e lo strumento di download compare solo quando c'è qualcosa da salvare.

Per essere precisi su dove tutto questo funziona: il browser integrato nell'app desktop di ChatGPT supporta WebMCP, e Chrome lo espone ai partecipanti all'origin trial come MyTools fino a Chrome 156. La specifica è una bozza al W3C, quindi trattala come qualcosa da rilevare, non da dare per scontato. L'URL qui sopra non ha bisogno di niente di tutto ciò.

Dove rientri in gioco tu

C'è una cosa che qui un assistente non può stabilire: quale parte della foto conta. Può centrare un quadrato, rispettare un rapporto d'aspetto o prendere il terzo inferiore. Non può capire che il ritaglio deve tenere tua figlia e togliere lo sconosciuto che passa sullo sfondo.

È un passaggio di consegne, non un muro — ed è la ragione per cui questo è un sito web e non un'API. L'assistente apre il ritagliatore, restituisce a te la decisione e riprende il lavoro una volta che l'hai presa. get_crop_image_state riporta qualunque rettangolo si trovi sullo schermo, compreso quello che hai trascinato tu, e run_crop_image senza argomenti lo usa. È lo strumento stesso a dirlo, nel suo hint: "Call run_crop_image with a rectangle in source-image pixels, or with no arguments to use the current selection."

Ecco quel giro completo, con un vero trascinamento nel mezzo:

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

    ← trascini il riquadro sulla parte che vuoi tenere

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."

Vale la pena dare un nome a questo schema, perché è il senso di tutto l'approccio. Un lavoro che nessuno ha bisogno di guardare è un lavoro da API — non ci metteresti davanti una pagina web. Questo invece ha bisogno di occhi: qualcuno deve vedere la foto per sapere dove va il ritaglio. Guidare la pagina è ciò che permette all'assistente di fare tutto quello che sta intorno a quel giudizio senza togliertelo — caricare il file, preparare lo strumento, aspettare, e poi misurare, ritagliare a piena risoluzione e salvare.

Che cosa dire al tuo assistente

Formula la richiesta con un link e una forma, e lascia a lui l'aritmetica:

Ritaglia questa in un quadrato, centrato: https://example.com/autumn.jpg

Prendi https://example.com/team-photo.png e ritagliala in 16:9 per una slide.

Questa foto ha troppo cielo. Aprila nel ritagliatore di MyTools e prendi i due terzi inferiori: https://example.com/hillside.jpg

E quando il file è sulla tua macchina, dillo — l'assistente apre lo strumento e ti aspetta:

Apri il ritagliatore di immagini di MyTools. La foto la aggiungo io, poi ritagliala in un quadrato.

Se il tuo assistente ti dice che non può ritagliare immagini, «aprila su mytools.com/image/crop-image/by-url?url=» più il tuo link di solito basta a fargli cambiare idea, perché l'obiezione non riguarda quasi mai il ritaglio. Riguarda il non avere uno strumento che possa aprire.

Quando tutto questo non funzionerà

Lo vuoi completamente autonomo, con un file sul tuo portatile. Un assistente non può leggere il tuo filesystem, e WebMCP non trasporta byte di file, quindi niente gli permette di consegnare da solo un file locale alla pagina. È un gesto da parte tua, non un vicolo cieco: lui apre il ritagliatore, tu scegli il file, lui fa il resto. Solo la versione del tutto autonoma ha bisogno dell'immagine a un URL. Se preferisci non coinvolgere affatto un assistente, il percorso manuale è di tre clic ed è spiegato in come ritagliare un'immagine.

L'immagine è dietro un login. Se per scaricare l'URL serve un cookie di sessione, nemmeno il nostro server riesce a scaricarlo, e otterrai un errore invece di un ritaglio.

Il file è enorme. Non imponiamo nessun limite di dimensione — non c'è nessuna quota da esaurire. Ma il ritaglio avviene nel tuo browser, sulla tua macchina, quindi un'immagine molto grande è vincolata dalla memoria disponibile lì, non da un numero stabilito a tavolino.

La versione breve

  • Lo strumento: https://mytools.com/image/crop-image
  • Aprirlo con un file già caricato: https://mytools.com/image/crop-image/by-url?url={url-encoded image url}
  • Un file sulla macchina dell'utente: apri lo strumento e lascia che sia lui a sceglierlo; ogni passo successivo resta comunque chiamabile
  • La decisione resta tua: trascina tu il riquadro di ritaglio, e run_crop_image senza argomenti usa esattamente ciò che hai scelto
  • Strumenti chiamabili, dove WebMCP è disponibile: get_crop_image_state, run_crop_image({x, y, width, height}), download_crop_image — rettangoli in pixel dell'immagine sorgente, origine in alto a sinistra
  • In entrata e in uscita: accetta JPEG, PNG, WebP, AVIF, GIF, BMP; scrive JPEG, PNG o WebP alla risoluzione della sorgente, senza filigrana
  • Account, CAPTCHA, quote: nessuno
  • Il tuo file: ritagliato nel browser, non su un server; lo scaricamento via ?url= è l'unica cosa che tocca il nostro, e non conserva niente