Verificar imagem corrompida
Ferramenta gratuita que examina um arquivo de imagem e diz se ele é válido: formato verdadeiro, dimensões, e se está truncado ou corrompido. Útil quando uma foto não abre, um sistema rejeita o upload ou você suspeita que o download veio pela metade. Roda no navegador, sem cadastro.
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
Por que uma imagem se recusa a abrir
As causas mais comuns são três. Primeira: o arquivo veio truncado — o download ou a transferência por WhatsApp foi interrompida e faltam bytes no final. Segunda: a extensão mente — alguém renomeou um WebP para .jpg e o programa antigo não entende o conteúdo real. Terceira: corrupção de verdade — cartão de memória com defeito, pen drive removido no meio da cópia. Cada causa tem cara diferente por dentro do arquivo, e é isso que a verificação identifica.
O que o diagnóstico mostra
A ferramenta lê a estrutura do arquivo e apresenta: o formato real (independente da extensão), as dimensões em pixels, o tamanho declarado versus o encontrado e se os marcadores internos estão íntegros. Com isso você sabe se o problema é o arquivo ou o programa que tenta abri-lo — e para de perder tempo reinstalando visualizador de imagem quando o defeito está no próprio JPG que veio truncado do e-mail.
Seu arquivo não sai da sua tela
A análise inteira acontece no navegador: a imagem não é enviada a servidor nenhum, o que importa quando o arquivo suspeito é um documento — foto de contrato, comprovante, página de identidade. Você pode verificar quantos arquivos quiser, de graça e sem cadastro, inclusive do celular. Se a imagem contém dado pessoal, melhor ainda: pela LGPD, dado que não circula é dado que não vaza.
Validação em lote para sistemas
Sites que recebem upload de usuários conhecem o problema do outro lado: arquivos quebrados entrando no banco e estourando erro na hora de exibir. A mesma verificação existe via API por US$ 0,002 a chamada, para validar cada imagem no momento do recebimento — antes de aceitar, gravar e servir um arquivo defeituoso.
Casos de uso
A foto da nota fiscal que o contador devolveu
Ana Paula Ferreira fotografou uma nota fiscal e mandou por e-mail, mas o escritório de contabilidade disse que o arquivo não abre. A verificação mostra que o JPG foi truncado no envio — bastou mandar de novo pelo WhatsApp.
Upload rejeitado no portal do governo
Um portal público recusa o comprovante escaneado de Rafael Almeida Costa alegando formato inválido. O diagnóstico revela que o arquivo é um WebP renomeado para .jpg — convertido para JPG de verdade, o envio passa.
Loja que valida o que o cliente envia
O marketplace onde a Distribuidora Horizonte Verde vende exige foto do produto no anúncio. O sistema da empresa valida cada imagem via API antes de subir, e arquivos quebrados são barrados na entrada com mensagem clara para o vendedor.
Perguntas frequentes
A ferramenta conserta a imagem corrompida?
Não — ela diagnostica. Saber o que há de errado já resolve boa parte dos casos: arquivo truncado se resolve baixando de novo; extensão errada se resolve convertendo. Corrupção profunda de mídia, infelizmente, raramente tem volta.
Por que o arquivo diz que é JPG mas não abre como JPG?
Porque extensão é só o nome: qualquer arquivo pode ser renomeado para .jpg. A verificação lê os bytes iniciais e informa o formato verdadeiro — muitas vezes é um WebP, HEIC ou PNG disfarçado.
Preciso enviar a imagem para vocês analisarem?
Não. A leitura é feita localmente, pelo próprio navegador, e nada é transmitido. Por isso dá para verificar com tranquilidade até documentos sensíveis, como foto de RG ou comprovante bancário.
Quanto custa verificar meus arquivos?
Na página, nada — uso livre, sem cadastro e sem limite de quantidade. O que tem preço é a versão via API para sistemas, cobrada a US$ 0,002 por verificação.
Tem limite de tamanho de arquivo?
A verificação trabalha com imagens de até 15 MB e 12 megapixels — cobre fotos de celular, escaneados e artes de design. Arquivos maiores que isso costumam ser outro tipo de problema.
Consigo usar isso no formulário de upload do meu site?
Sim: integrando a API no backend, cada imagem recebida é validada antes de entrar no seu banco. Você evita gravar arquivo quebrado e devolve o erro na hora para o usuário corrigir.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/image/validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image":"https://ejemplo.com/imagen.jpg"}'const res = await fetch("https://api.kit.forhosting.com/image/validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image": "https://ejemplo.com/imagen.jpg"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image": "https://ejemplo.com/imagen.jpg"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image":"https://ejemplo.com/imagen.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image":"https://ejemplo.com/imagen.jpg"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/validate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"image": "https://ejemplo.com/imagen.jpg"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.validate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_mb | 15 |
max_megapixels | 12 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |