Sposób na usunięcie takich samych obrazków jpg/png?

0

Wiem że to forum programistyczne ale jakoś tutaj macie patenty na wszystko tak więc zapytam.

Jak by można wyszukać w folderze wszystkie obrazki które mają swoje duplikaty ? I ewentualnie usunąć duplikaty a czasem jest jeden a czasem kilka?
Mam takie problem ponieważ z kilkunastu tysięcy obrazków dużo jest IDENTYCZNYCH ale o innych nazwach.

Pozdro

0

Jak na moje to pomyśleć coś z tym:

1: rozmiar pliku, ale obawiam się, że mogłyby zostać usunięte różne zdjęcia gdybyś użył tylko tego kryteria

2: data utworzenia i modyfikacji - oryginał i duplikat mają te samą date modyfikacji, ale inną utworzenia (tez chyba jakiś % ryzyka)

3: sumy kontrolne?(nie jestem pewien)

3

Ja to robie sumami kontrolnymi, na przykład (to będzie razem z podkatalogami):
find "$katalog" -exec md5sum '{}' ';' 2> /dev/null | sort | uniq --all-repeated=separate -w32
-- można też użyc innych sum (zamiast md5), ale na razie się jeszcze nie zawiodłem... :)

0

@koszalek-opalek: bardzo dobry sposób, warto żeby został na forum, jednak OP ma Windowsa. :P

0
koszalek-opalek napisał(a):

Ja to robie sumami kontrolnymi, na przykład (to będzie razem z podkatalogami):
find "$katalog" -exec md5sum '{}' ';' 2> /dev/null | sort | uniq --all-repeated=separate -w32
-- można też użyc innych sum (zamiast md5), ale na razie się jeszcze nie zawiodłem... :)

Ok dzięki wielkie tylko powiedz mi jak mam to wywołać , gdzie wpisac bo ja jestem noga w tym programowaniu :- )

1

Chyba @furious programming miał rację -- @szalon, masz Windowsa? No niestety, to jest polecenie na powłokę linuksową/uniksową, więc bez CygWina (czy czegoś podobnego, nie znam się na Windowsie) się nie obędzie... Polecam, jeśli używasz Windowsa.

0
koszalek-opalek napisał(a):

Chyba @furious programming miał rację -- @szalon, masz Windowsa? No niestety, to jest polecenie na powłokę linuksową/uniksową, więc bez CygWina (czy czegoś podobnego, nie znam się na Windowsie) się nie obędzie... Polecam, jeśli używasz Windowsa.

Nie no tak pomyślałem że to linux , wszak trochę się go uczę aby "administrować serwer" - tak wiem brzmi to strasznie ale jakoś się trza nauczyć ;D

tak więc na linuxie taką komende wystarczy odpalić i tyle ?
A gdyby chiał zrobić taki patent że nazwę każdego obrazka z tych kilkunastu tysiecy ustawia na "1 + n" ?
Dlaczego. A no bo sporo plikow ma spieprzone polskie znaki i stwierdzilem ze ustawie dla każdego nazwe "1" "2" albo "obrazek1" "obrazek2" itp .. Jak to zrobic?
[bo z polskimi znakami to nie wiem czy chce się bawić ...]
Chce to zrobić od razu przed wrzuceniem na serwer aby pozniej stronke latwiej zooptymalizowac - w zasadzie to "migracja" stronki

1

Po odpaleniu tej komendy (oczywiście zamiast $katalog wstawiasz katalog, o który Ci chodzi, na przykłąd . jako bieżący) dostajesz spis zestawów identycznych plików pooddzielanych pustymi wierszami, na przykład:

71754d8d6fa1a6bdbca3565d590f6cc0  ./tmp.atQcyuEDZo
71754d8d6fa1a6bdbca3565d590f6cc0  ./tmp.kNLe7EcwjH

b026324c6904b2a9cb4b88d6d61c81d1  ./e
b026324c6904b2a9cb4b88d6d61c81d1  ./kat1/g
b026324c6904b2a9cb4b88d6d61c81d1  ./kat1/q
b026324c6904b2a9cb4b88d6d61c81d1  ./kat2/f
b026324c6904b2a9cb4b88d6d61c81d1  ./q
b026324c6904b2a9cb4b88d6d61c81d1  ./r
b026324c6904b2a9cb4b88d6d61c81d1  ./w

d41d8cd98f00b204e9800998ecf8427e  ./c
d41d8cd98f00b204e9800998ecf8427e  ./v

d5f64be6340ae44e364d74b99b61181f  ./tmp.JWTIdi2z5g
d5f64be6340ae44e364d74b99b61181f  ./tmp.RP9hWdqJzj

Potem możesz sobie z każdego zestawu niepotrzebne pousuwać/przejrzeć... To zresztą też można zautomatyzować...

0

Ja napisałem sobie prosty skrypt do segregowania zdjęc do folderów z datami (i usuwania duplikatów przy okazji) który działa tak (na wejściu dwa foldery: zdjęcia nieposortowane, zdjęcia posortowane):

  • dla każdego pliku z nieposortowanego folderu policz sha1 i spróbuj odczytać EXIF i wyciągnąć i przeparsować datę (aktualnie spotkałem się z dwoma formatami daty i godziny, gdzie tylko google panorama używa innego niż wszyscy)
  • jeśli nie mam daty to wrzuc do specjalnego folderu w posortowanych z zachowaniem nazwy pliku i relatywnej ścieżki
  • jeśli mam datę wrzuć do folderu z datą i zmien nazwe na ladniejsza
  • przy wrzucaniu do posortowanych bez względu na folder dodaj sha1->sciezka do indeksu - jesli kolizja to porownaj pliki po rozmiarze i bajcie (jak takie same to nie dodawaj, jak nie to wyswietl blad bo kolizja sha1 nie jest latwa i bede chcial sie plikami pobawic z ciekawosci)
  • zapisz indeks
0

Są do tego gotowe programy.

0
somekind napisał(a):

Są do tego gotowe programy.

Na przykład ?

0
koszalek-opalek napisał(a):

Po odpaleniu tej komendy (oczywiście zamiast $katalog wstawiasz katalog, o który Ci chodzi, na przykłąd . jako bieżący) dostajesz spis zestawów identycznych plików pooddzielanych pustymi wierszami, na przykład:

71754d8d6fa1a6bdbca3565d590f6cc0  ./tmp.atQcyuEDZo
71754d8d6fa1a6bdbca3565d590f6cc0  ./tmp.kNLe7EcwjH

b026324c6904b2a9cb4b88d6d61c81d1  ./e
b026324c6904b2a9cb4b88d6d61c81d1  ./kat1/g
b026324c6904b2a9cb4b88d6d61c81d1  ./kat1/q
b026324c6904b2a9cb4b88d6d61c81d1  ./kat2/f
b026324c6904b2a9cb4b88d6d61c81d1  ./q
b026324c6904b2a9cb4b88d6d61c81d1  ./r
b026324c6904b2a9cb4b88d6d61c81d1  ./w

d41d8cd98f00b204e9800998ecf8427e  ./c
d41d8cd98f00b204e9800998ecf8427e  ./v

d5f64be6340ae44e364d74b99b61181f  ./tmp.JWTIdi2z5g
d5f64be6340ae44e364d74b99b61181f  ./tmp.RP9hWdqJzj

Potem możesz sobie z każdego zestawu niepotrzebne pousuwać/przejrzeć... To zresztą też można zautomatyzować...

Hmn no ale czekaj bo coś mi tu nie gra. Wg tego przykładu co podałeś to pokazuje - owszem duplikaty ale o tym samych nazwach jedynie. A mnie chodziło o to aby wyszukało duplikaty identyczne obrazy ale o zmienionych nazwach. Ot , taki mini burdel

0
szalon napisał(a):
koszalek-opalek napisał(a):

Po odpaleniu tej komendy (oczywiście zamiast $katalog wstawiasz katalog, o który Ci chodzi, na przykłąd . jako bieżący) dostajesz spis zestawów identycznych plików pooddzielanych pustymi wierszami, na przykład:

71754d8d6fa1a6bdbca3565d590f6cc0  ./tmp.atQcyuEDZo
71754d8d6fa1a6bdbca3565d590f6cc0  ./tmp.kNLe7EcwjH

b026324c6904b2a9cb4b88d6d61c81d1  ./e
b026324c6904b2a9cb4b88d6d61c81d1  ./kat1/g
b026324c6904b2a9cb4b88d6d61c81d1  ./kat1/q
b026324c6904b2a9cb4b88d6d61c81d1  ./kat2/f
b026324c6904b2a9cb4b88d6d61c81d1  ./q
b026324c6904b2a9cb4b88d6d61c81d1  ./r
b026324c6904b2a9cb4b88d6d61c81d1  ./w

d41d8cd98f00b204e9800998ecf8427e  ./c
d41d8cd98f00b204e9800998ecf8427e  ./v

d5f64be6340ae44e364d74b99b61181f  ./tmp.JWTIdi2z5g
d5f64be6340ae44e364d74b99b61181f  ./tmp.RP9hWdqJzj

Potem możesz sobie z każdego zestawu niepotrzebne pousuwać/przejrzeć... To zresztą też można zautomatyzować...

Hmn no ale czekaj bo coś mi tu nie gra. Wg tego przykładu co podałeś to pokazuje - owszem duplikaty ale o tym samych nazwach jedynie. A mnie chodziło o to aby wyszukało duplikaty identyczne obrazy ale o zmienionych nazwach. Ot , taki mini burdel

Jakich identycznych nazwach? :) Identyczne są sumy MD5! Czyli (prawie) na pewno zawartość pliku... Nazwy są w drugiej kolumnie...

0
koszalek-opalek napisał(a):
szalon napisał(a):
koszalek-opalek napisał(a):

Po odpaleniu tej komendy (oczywiście zamiast $katalog wstawiasz katalog, o który Ci chodzi, na przykłąd . jako bieżący) dostajesz spis zestawów identycznych plików pooddzielanych pustymi wierszami, na przykład:

71754d8d6fa1a6bdbca3565d590f6cc0  ./tmp.atQcyuEDZo
71754d8d6fa1a6bdbca3565d590f6cc0  ./tmp.kNLe7EcwjH

b026324c6904b2a9cb4b88d6d61c81d1  ./e
b026324c6904b2a9cb4b88d6d61c81d1  ./kat1/g
b026324c6904b2a9cb4b88d6d61c81d1  ./kat1/q
b026324c6904b2a9cb4b88d6d61c81d1  ./kat2/f
b026324c6904b2a9cb4b88d6d61c81d1  ./q
b026324c6904b2a9cb4b88d6d61c81d1  ./r
b026324c6904b2a9cb4b88d6d61c81d1  ./w

d41d8cd98f00b204e9800998ecf8427e  ./c
d41d8cd98f00b204e9800998ecf8427e  ./v

d5f64be6340ae44e364d74b99b61181f  ./tmp.JWTIdi2z5g
d5f64be6340ae44e364d74b99b61181f  ./tmp.RP9hWdqJzj

Potem możesz sobie z każdego zestawu niepotrzebne pousuwać/przejrzeć... To zresztą też można zautomatyzować...

Hmn no ale czekaj bo coś mi tu nie gra. Wg tego przykładu co podałeś to pokazuje - owszem duplikaty ale o tym samych nazwach jedynie. A mnie chodziło o to aby wyszukało duplikaty identyczne obrazy ale o zmienionych nazwach. Ot , taki mini burdel

Jakich identycznych nazwach? :) Identyczne są sumy MD5! Czyli (prawie) na pewno zawartość pliku... Nazwy są w drugiej kolumnie...

Oh wybacz , masz rację

1
szalon napisał(a):
somekind napisał(a):

Są do tego gotowe programy.

Na przykład ?

Z głowy nie pamiętam, ale hasło "duplicate finder" w Google na pewno zwróci sensowne wyniki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1