Skrypt wykrywający powtarzające się pliki graficzne jpg

Stronę tą wyświetlono już: 233 razy

Z potrzeby powstał mały program do wykrywania w podanej lokalizacji powtarzających się plików *.jpg. Porównywanie odbywa się dwuetapowo:

  • porównywanie pod względem rozmiaru pliku;
  • porównywanie piksel po pikselu (gdy porównywanie w pierwszym etapie zostanie spełnione)

Program automatycznie tworzy listę plików powtarzających się, zapisuje ją do pliku files.txt oraz usuwa te pliki.

Uwaga! Program pozostawia na dysku pierwszy napotkany plik co może skutkować utratą danych zawartych w nazwie jakiegoś pliku.

Złożoność obliczeniowa algorytmu jest rzędu (n-1)2·0,5 z tego też powodu algorytm jest czasochłonny, zwłaszcza przy dużej liczbie porównywanych plików. Porównywanie pierwszoetapowe pod względem rozmiaru pliku umożliwia drastyczne skrócenie czasu porównywania. W drugim etapie program wczytuje bitmapy skaluje do tych samych rozmiarów i porównuj bit po bicie. Usuwanie plików odbywa się na samym końcu.

Załączniki:

Kod skryptu na GitHub-ie

Komentarze