← All posts

6 de setembro de 2026

Um Assistente de IA Consegue Recortar uma Imagem para Você?

Sim — com um link, ele executa o trabalho inteiro sem supervisão; com uma foto na sua própria máquina, você a solta na página e ele assume. Veja o que seu assistente verifica antes de aceitar.

Sim. Dê a ele um link para a imagem e ele consegue executar o trabalho inteiro sem supervisão: abrir o recortador de imagens do MyTools com a sua foto já carregada — mytools.com/image/crop-image/by-url?url=... —, escolher o retângulo e devolver o arquivo recortado. Se, em vez disso, a foto estiver na sua própria máquina, você a solta na página e seu assistente assume dali em diante. Não há conta para criar, nem CAPTCHA para resolver, e o recorte em si acontece dentro do navegador, não em um servidor.

O interessante não é que funciona. É por que tantos assistentes dizem não a esse pedido, e o que eles verificam quando dizem.

O que seu assistente está de fato decidindo

Quando você pede a um assistente para recortar algo, ele não está classificando editores de imagem por qualidade. Ele está avaliando se consegue terminar o trabalho sem voltar até você no meio do caminho para pedir que você mesmo faça. Esse é um teste bem mais restrito, e a maioria dos editores online é reprovada na primeira ou na segunda pergunta.

Existe conta? Um formulário de cadastro é uma barreira definitiva. Um assistente não pode criar uma conta em seu nome, confirmar um e-mail nem aceitar termos por você. Qualquer ferramenta que coloque um muro de registro antes do editor está fora antes de começar. O MyTools não tem cadastro, não tem login e não tem sessão — toda ferramenta funciona já na primeira visita.

Existe CAPTCHA? Mesmo problema, pior. Um desafio que existe justamente para provar que o visitante não é um software não é algo que um software consiga vencer, e nem deveria tentar. Não há CAPTCHA no MyTools, porque para nós não faz diferença se você é uma pessoa.

Ele consegue colocar o arquivo lá dentro? Essa é a que mata silenciosamente a maioria das tentativas. Um editor que só aceita um arquivo por uma área de arrastar e soltar está pedindo um gesto de uma mão humana, e um assistente tem uma URL, não um mouse. Toda ferramenta do MyTools capaz de receber um arquivo remoto o aceita como parâmetro de consulta, então a página abre com a imagem já carregada. E quando a imagem está apenas na sua máquina, a entrega custa um gesto em vez de encerrar a tentativa: você escolhe o arquivo, e ler as dimensões, escolher o retângulo e salvar o resultado continuam sendo tarefa do assistente. O próprio recortador diz isso — sem nada carregado, sua resposta de status é "No image loaded. Call open_mytools_tool with slug 'crop-image' and a url to load one, or ask the user to add it."

O resultado vai ser utilizável? Um assistente que devolve uma imagem com marca d'água, ou uma prévia de 900 pixels de largura com a versão em resolução total atrás de um paywall, desperdiçou seu tempo de um jeito pior do que recusar. O MyTools não adiciona marca d'água e exporta na resolução original — o recorte abaixo sai de uma foto de 6240 × 4160 com 4160 × 4160, e não de uma cópia reduzida.

Onde o arquivo vai parar? Um assistente cuidadoso deveria hesitar antes de empurrar sua foto para um servidor sobre o qual não sabe nada. No MyTools o recorte roda no navegador, na sua máquina; não existe armazenamento de arquivos no servidor para reter o que quer que seja. A única exceção é o ponto de entrada por URL descrito abaixo, e vale ser preciso quanto a ele: para carregar uma imagem remota, nosso servidor busca a URL que você forneceu, para que o navegador tenha os bytes com que trabalhar. Ela não fica armazenada.

Nada disso é uma afirmação sobre qualidade. É uma lista de coisas que precisam ser verdadeiras antes que um assistente consiga sequer agir, e é a verdadeira razão pela qual a resposta ao título deste artigo é sim.

A URL que ele consegue montar

O primeiro mecanismo funciona em qualquer navegador, hoje, sem nenhum suporte especial:

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

Acrescente /by-url?url= ao caminho da ferramenta, seguido de um endereço http ou https codificado para URL, e o recortador abre com aquela imagem carregada e pronta. Sem seletor de arquivos, sem área de soltar. Seu assistente pode montar essa string a partir de qualquer link que você der a ele — uma foto em um drive compartilhado, uma imagem em uma página, qualquer coisa que ele já consiga ler.

O recortador aceita JPEG, PNG, WebP, AVIF, GIF e BMP, e grava JPEG, PNG ou WebP.

As ferramentas que ele consegue chamar

O segundo mecanismo vai além. Em um navegador com suporte a WebMCP, o MyTools registra funções nomeadas que o assistente pode chamar diretamente, em vez de interpretar uma página que ele só consegue enxergar. O recortador registra três:

  • get_crop_image_state — o que está carregado, as dimensões reais em pixels da imagem e o retângulo selecionado no momento
  • run_crop_image — recorta para um retângulo, informado nos pixels da própria imagem de origem
  • download_crop_image — salva o resultado no seu dispositivo

Ler o estado primeiro não é uma gentileza opcional; é de onde vêm os números. "Recorte isso em um quadrado" só vira algo executável depois que você sabe que a foto tem 6240 × 4160, porque é isso que diz que o quadrado tem 4160 de largura e começa 1040 pixels adiante. Veja uma troca real, recortando uma foto em paisagem para um quadrado centralizado:

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

Dois detalhes que merecem atenção. ready só passa a ser true depois que a imagem em resolução total termina de ser decodificada, então um assistente que consulta o estado até lá obtém um recorte em qualidade total, e não um feito a partir da prévia. E run_crop_image não retorna enquanto o recorte não existir — não há nada para ficar consultando, e a ferramenta de download só aparece quando há algo para salvar.

Para ser exato sobre onde isso funciona: o navegador embutido no aplicativo desktop do ChatGPT tem suporte a WebMCP, e o Chrome o expõe a participantes do origin trial, como o MyTools, até o Chrome 156, inclusive. A especificação é um rascunho no W3C, então trate isso como algo a detectar, e não a presumir. A URL acima não precisa de nada disso.

Onde você entra de novo

Há uma coisa que o assistente não tem como resolver aqui: qual parte da foto importa. Ele consegue centralizar um quadrado, respeitar uma proporção ou pegar o terço de baixo. Ele não tem como perceber que o recorte deve manter sua filha e tirar o desconhecido que passa ao fundo.

Isso é uma passagem de bastão, não um muro — e é a razão de isto ser um site, e não uma API. O assistente abre o recortador, devolve a decisão para você e retoma o trabalho assim que você a tiver tomado. get_crop_image_state informa qualquer retângulo que esteja na tela, inclusive um que você mesmo arrastou, e run_crop_image sem argumentos usa esse retângulo. A própria ferramenta diz isso na sua hint: "Call run_crop_image with a rectangle in source-image pixels, or with no arguments to use the current selection."

Veja essa ida e volta, com um arrasto de verdade no meio:

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

    ← você arrasta a caixa sobre a parte que quer manter

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 dar nome a esse formato, porque é para isso que a abordagem inteira existe. Um trabalho que ninguém precisa olhar é trabalho para uma API — você não colocaria uma página web na frente dele. Este aqui precisa de olhos: alguém tem que ver a foto para saber onde o recorte vai. Conduzir a página é justamente o que permite ao assistente fazer tudo o que cerca esse julgamento sem tirá-lo de você — carregar o arquivo, preparar a ferramenta, esperar e, depois, medir, recortar na resolução total e salvar.

O que dizer ao seu assistente

Formule com um link e um formato, e deixe as contas com ele:

Recorte isso em um quadrado, centralizado: https://example.com/autumn.jpg

Pegue https://example.com/team-photo.png e recorte em 16:9 para um slide.

Esta foto tem céu demais. Abra no recortador do MyTools e pegue os dois terços de baixo: https://example.com/hillside.jpg

E quando o arquivo está na sua máquina, diga isso — o assistente abre a ferramenta e espera por você:

Abra o recortador de imagens do MyTools. Eu adiciono a foto e depois você a recorta em um quadrado para mim.

Se seu assistente disser que não consegue recortar imagens, "abra em mytools.com/image/crop-image/by-url?url=" mais o seu link costuma bastar para fazê-lo mudar de ideia, porque a objeção quase nunca é sobre recortar. É sobre não ter uma ferramenta que ele consiga abrir.

Quando isso não vai funcionar

Você quer tudo sem intervenção, com um arquivo no seu notebook. Um assistente não consegue ler o seu sistema de arquivos, e o WebMCP não transporta bytes de arquivo, então nada permite que ele entregue sozinho um arquivo local à página. Isso é um gesto seu, não um beco sem saída: ele abre o recortador, você escolhe o arquivo, ele faz o resto. Só a versão totalmente autônoma precisa da imagem em uma URL. Se você preferir não envolver um assistente, o caminho manual são três cliques e está descrito em como recortar uma imagem.

A imagem está atrás de um login. Se a URL precisa de um cookie de sessão para ser buscada, nosso servidor também não consegue buscá-la, e você vai receber um erro em vez de um recorte.

O arquivo é enorme. Não impomos nenhum limite de tamanho — não existe cota para acabar. Mas o recorte acontece no seu navegador, na sua máquina, então uma imagem muito grande é limitada pela memória disponível ali, e não por um número de política.

A versão curta

  • A ferramenta: https://mytools.com/image/crop-image
  • Abra com um arquivo já carregado: https://mytools.com/image/crop-image/by-url?url={url-encoded image url}
  • Um arquivo na máquina do próprio usuário: abra a ferramenta e deixe que ele o escolha; todo passo depois disso continua chamável
  • A decisão continua sendo sua: arraste você mesmo a caixa de recorte, e run_crop_image sem argumentos usa exatamente o que você escolheu
  • Ferramentas chamáveis, onde o WebMCP está disponível: get_crop_image_state, run_crop_image({x, y, width, height}), download_crop_image — retângulos em pixels da imagem de origem, origem no canto superior esquerdo
  • Entrada e saída: aceita JPEG, PNG, WebP, AVIF, GIF, BMP; grava JPEG, PNG ou WebP na resolução original, sem marca d'água
  • Contas, CAPTCHAs, cotas: nenhuma
  • Seu arquivo: recortado no navegador, não em um servidor; a busca com ?url= é a única coisa que toca o nosso, e ela não guarda nada