A rajada que você disparou no mar. A sua própria foto de volta do WhatsApp com 1.280 pixels. O print de uma foto que você já tinha. O RAW ao lado do JPG. Qualquer coisa que compare arquivo por byte chama esses quatro de fotos diferentes. Eles são uma só.
Elegant Photo Cleaner · fotos duplicadas e parecidas · Windows 10 e 11
Ilustração. Cinco arquivos, uma fotografia, cinco nomes, tamanhos e datas diferentes. Nenhum deles bate com o outro byte a byte.
Um caçador de duplicados que compara hash de conteúdo acerta um caso e fica cego para outros quatro. São estes.
SHA-256 a3f9c1…b70e · SHA-256 71c2d8…4f19
O olho diz uma foto. O hash diz dois arquivos sem nada em comum. O Elegant Photo Cleaner também acha as cópias idênticas, por SHA-256, e trata essas como a metade fácil do problema.
O Elegant File Explorer organiza arquivos por regras e acha duplicados byte a byte. Nenhum dos dois aplicativos exige o outro, e nada nesta página precisa do irmão instalado.
Conheça o Elegant File ExplorerNão existe modelo aqui dentro e não existe inferência. Existem medidas: cinco delas, todas antigas, todas conferíveis, todas rodando no seu próprio processador. O mesmo acervo varrido duas vezes dá a mesma resposta, byte a byte.
Abaixo está o que cada medida realmente faz, desenhada em vez de descrita, porque a versão honesta cabe num desenho.
A foto é reduzida a uma gradezinha cinza e cada quadrado é comparado com o vizinho. Mais claro ou mais escuro, um bit. Sessenta e quatro quadrados, sessenta e quatro bits, e o que sai é uma impressão digital da forma da imagem, não dos bytes dela. Redimensione, salve de novo com 91 KB, e a impressão digital quase não se mexe. No desenho acima, dois dos sessenta e quatro bits discordam.
Não é comparação de miniaturas, e não é a cor que ele olha.
Uma segunda assinatura guarda só as frequências baixas da imagem, as massas grandes em vez do grão. É o que sobrevive a uma recompressão brutal, e é também quem diz não quando duas imagens apenas por acaso se parecem.
Duas assinaturas são comparadas contando os bits que diferem. Um par só vira aresta de semelhança quando as duas concordam, dHash e pHash juntas, nunca uma ou outra. Essa palavrinha é o que mantém um documento escaneado legível: duas páginas diferentes do mesmo documento ficam a dois bits uma da outra só no dHash, e uma regra frouxa colaria as duas.
Não existe número livre para digitar, e não existe nada mais permissivo que o degrau mais largo. O motor recusa por escrito.
Dentro de uma pilha que já existe, o aplicativo mede com que brusquidão a luz muda em cada quadro. Um quadro tremido produz um número baixo; um quadro firme, um número alto. É assim que os catorze quadros da mesma onda podem ser postos em ordem de nitidez sem ninguém apertar os olhos.
Ele não sai caçando fotos tremidas por conta própria. Uma foto tremida sozinha não tem par, então nunca entra num plano.
Rajada não se acha olhando pixel. Acha-se no registro da própria câmera: mesma câmera, capturas a no máximo dois segundos de distância e a pilha inteira dentro de trinta segundos. É uma aresta de tempo, não de imagem, e a janela é a mesma nos três degraus de semelhança.
Estes números são do motor. A tela nunca mostra um score para você: ela mostra uma frase. E o resultado é determinístico: o mesmo acervo dá sempre o mesmo resultado, byte a byte, em qualquer máquina.
São pisos, não médias: o pior valor observado, medido no degrau Conservador, que é o padrão e o mais duro dos três. São números de recall no corpus semeado do próprio motor, remontado em seis sementes independentes. Não são precisão, não são o seu acervo e não somam num número único. Fotos muito chapadas chegam a 100% a partir do degrau Normal.
O tipo é deduzido das arestas de evidência dentro da pilha, nunca estimado por semelhança. Toda pilha tem no mínimo dois arquivos distintos, então um atalho ou um hardlink apontando para o mesmo arquivo nunca vira pilha. Sete deles nomeiam por que duas fotos estão juntas; o oitavo, Tremidas, é uma lente — ele ordena por nitidez dentro de uma pilha que já existe por outro motivo.
Os mesmos bytes, com SHA-256 igual em todos os membros da pilha. Nomes, pastas e datas diferentes, um arquivo só. É o único tipo que ganha selo de sugestão.
SHA-256A mesma imagem depois de redimensionar, recomprimir, girar ou espelhar. dHash e pHash têm de concordar, e a aresta carrega qual das oito simetrias foi aplicada.
dHash E pHashA mesma imagem em outra escala ou peso: proporção compatível, dimensão ou tamanho diferentes. O original de 8 MB e a cópia de 91 KB do mensageiro.
proporção + tamanhoQuadros da mesma câmera, a no máximo dois segundos de distância, com a pilha inteira dentro de trinta segundos. Achada no registro EXIF, não nos pixels.
EXIF, até 2 sUm print de tela que contém uma foto que você já tem. Só existe quando a moldura uniforme em volta da imagem pode ser medida e recortada.
caixa de conteúdoUma lente, não uma caçada. Dentro de uma pilha que já existe por outro motivo, ele mostra qual quadro é o tremido, medido por nitidez. Nunca sai procurando fotos tremidas por conta própria.
nitidez, dentro da pilhaO RAW e o revelado do mesmo clique, verificados par a par. A prova forte é o conjunto de acompanhantes, mesma pasta e mesmo nome-base; a fraca é mesma câmera com capturas coladas.
verificado par a parDois de três quadros-chave, amostrados a 10%, 50% e 90%, dentro do limiar, mais duração com um segundo de tolerância. A relação é conferida par a par e nunca encadeada.
nasce desligadoA análise de RAW e a de vídeo nascem desligadas, e o custo do vídeo é dito em voz alta antes de você ligar. Uma pilha de que o motor desconfia, como milhares de prints quase iguais, é mostrada e explicada, e não propõe absolutamente nada.
Quando duas fotos caem na mesma pilha, o aplicativo não te entrega um percentual para interpretar. Ele te entrega o motivo.
Ilustração da ficha do arquivo. As oito simetrias do quadrado estão cobertas: 90°, 180°, 270° e os espelhos. Uma foto tirada 7° torta é outro problema, e está nos limites conhecidos.
O controle de semelhança tem exatamente três degraus. Ele muda o que você vê. Ele nunca muda o que é proposto.
O padrão, e o mais duro. Menos pares na tela, e foi aqui que os pisos medidos lá em cima foram tirados.
O degrau do meio. Fotos chapadas, como céu, parede ou página escaneada, são alcançadas por inteiro a partir daqui.
O mais largo que o motor vai. Qualquer coisa mais permissiva é uma recusa escrita no código, com nome.
As lentes mudam o que você vê. Nenhuma delas propõe exclusão.
Exclusão permanente não existe aqui. Nem como opção escondida, nem como caixinha para marcar, nem como ajuste que veio desligado de fábrica.
É estrutural. Não existe no aplicativo nenhum caminho que apague uma foto sua de vez: as únicas chamadas de exclusão que existem nos fontes tocam o log do próprio aplicativo e os arquivos de configuração dele. O aplicativo não tem como ganhar novos verbos de exclusão nem conexão com a internet: esses limites fazem parte de como ele é construído, não de uma configuração e sockets.
Nada se move antes de o plano estar na tela, revisado classe por classe e aprovado. Não existe função nenhuma no aplicativo que recicle um caminho por conta própria.
Um diário write-ahead registra o que vai acontecer antes de qualquer arquivo se mover. Sem diário, nada se move. Mover sem rede é apagar.
Imediatamente antes de reciclar, ele relê o SHA-256 e o carimbo da vítima e do sobrevivente. Qualquer divergência derruba a pilha inteira com motivo nomeado, e “não consegui olhar” nunca é gravado como “olhei e não achei”.
Os acompanhantes viajam com o arquivo a que pertencem: o .MOV do Live Photo, o .XMP do RAW.
Terminada a faxina, o aplicativo confere que a foto que ficou existe e realmente decodifica. Se ela não abrir, o lote inteiro volta da Lixeira e a tela diz isso.
Se você fechou a janela, a oferta está esperando na próxima vez que abrir o aplicativo, e os acompanhantes voltam juntos.
O que o aplicativo já analisou vai para um catálogo local, e abrir o aplicativo pinta as pilhas de ontem de volta antes de ele começar a reconciliar em segundo plano.
As pilhas de vídeo são a exceção, e isso está escrito nos limites conhecidos: elas são reconstruídas a cada sessão, então é preciso varrer de novo para revê-las.
Integração é bônus, nunca pedágio. O que não está de fato disponível na sua máquina não aparece: sem botão morto e sem aviso explicando o que está faltando.
A foto que você guardou abre já selecionada na pasta dela, dentro do Elegant File Explorer.
O aplicativo escreve uma regra para as fotos que chegarem daqui em diante e entrega para o irmão. A regra chega desligada, para você ler primeiro.
O verbo falta do outro lado, então o botão falta deste lado. Quando existir, será contado como os outros.
O Elegant Photo Cleaner está na Microsoft Store. O preço de lançamento vale por tempo limitado.
Dizer custa menos que esconder, e todos estes são consequência de decisões que tomaríamos de novo.
Acha, e é para isso que ele existe. Cada foto ganha duas assinaturas, dHash e pHash, e um par só é chamado de parecido quando as duas concordam. É assim que a mesma imagem é reencontrada depois de voltar do WhatsApp com 1.280 pixels, depois de girada, espelhada ou redimensionada. As cópias byte a byte também são achadas, por SHA-256, e são as únicas que ganham selo de sugestão.
Não. Não há modelo e não há inferência. Ele mede: dHash, pHash, distância de Hamming, variância do Laplaciano para nitidez e o registro EXIF da própria câmera para as rajadas. O mesmo acervo dá sempre o mesmo resultado.
Não. Nada nasce marcado, o plano é revisado classe por classe e aprovado por você, e o único verbo destrutivo do aplicativo é mandar o arquivo para a Lixeira do Windows. Exclusão permanente não existe aqui, nem como opção escondida.
Nenhuma foto, nenhum nome de arquivo e nenhum hash sai da sua máquina. O aplicativo não tem nenhuma função de conexão à internet. A única conexão que existe é a verificação de licença e da avaliação de 15 dias na Microsoft Store, feita pela API do próprio Windows, e ela é fail-open: se a Store não responder, o acesso que você já tinha continua.
Dá, de dentro do aplicativo, inclusive na próxima abertura se você fechou a janela. Os acompanhantes vão juntos e voltam juntos: o .MOV do Live Photo, o .XMP do RAW. Desfazer depende de os arquivos ainda estarem na Lixeira do Windows. Se você esvaziou a Lixeira, não existe verbo que traga de volta, e o aplicativo diz isso em vez de fingir.
HEIC, RAW, WebP e vídeo dependem da extensão de codec correspondente do Windows. O aplicativo sonda os codecs antes da análise pesada e diz o nome da extensão que resolve, e o que não pôde ser lido é contado na tela e não pode ser vítima nem sobrevivente. RAW e vídeo nascem desligados, e as pilhas de vídeo são reconstruídas a cada sessão.
Não. O Elegant Photo Cleaner é completo sozinho. Se o irmão estiver instalado, o aplicativo conta o que realmente ficou disponível na sua máquina e mostra só isso. O que não está disponível simplesmente não aparece: sem botão morto e sem aviso.
Não. Compra única, sem assinatura e sem renovação, com 15 dias de avaliação no seu PC, sem cartão e sem conta.
O Elegant Photo Cleaner acha a mesma foto entre nomes, tamanhos e datas diferentes, mostra a evidência em palavras e não manda nada para lugar nenhum sem você.
Disponível na Microsoft Store. Windows 10 versão 1809 ou superior, e Windows 11.