Как Shotwell обнаруживает дубликаты?

Не удалось найти ответы на это с Google. При импорте той же папки изображений дважды, Shotwell пропустит дублирующиеся фотографии. Но как это обнаруживает дубликаты? Если я импортирую две различных папки изображений, некоторые из которых имеют то же имя по некоторым причинам, то Shotwell предположит, что они - дубликаты? Или это также включает в размер файла, делание лжи копирует вряд ли? Или это хеширует изображения, делание лжи копирует почти невозможный?

4
задан 9 August 2014 в 22:52

1 ответ

Я полагаю, что это более совершенствуется, чем простые имена, я просто попробовал. На самом деле казалось бы, что это не основывает его на имени вообще.

, Таким образом, я просто создал следующее:

TestDir
  │
  ├─ blue.png #Blue A4 page
  ├─ blue2.png #Blue A4 page
  ├─ green.png #Blue A4 page
  ├─ red.png #Yellow A4 page
  ├─ yellow.png #Yellow A4 page
  ├─ yellow2.png #Yellow A4 page
  └ TestDir2
       │
       ├─ yellow.png #Blue A4 page
       └─ yellow.png #Blue A4 page

Импортированный папка TestDir (который импортирует из любых подкаталогов также). Это было уведомлением:

6 duplicate photos were not imported:
/home/tim/Pictures/Test/red.png
/home/tim/Pictures/Test/yellow2.png
/home/tim/Pictures/Test/green.png
/home/tim/Pictures/Test/blue2.png
(and 2 more)

2 photos successfully imported.

два, которые это импортировало, были blue.png и yellow.png. Это вызвано тем, что они были созданы сначала (это выбирает самое старое, если существуют дубликаты).

Это было подтверждено следующим тестом:

TestDir
  │
  ├─ blue.png #Blue A4 page
  ├─ blue2.png #Blue A4 page
  ├─ green.png #Blue A4 page (sorry OCD people)
  ├─ red.png #Yellow A4 page (sorry OCD people)
  ├─ yellow.png #Yellow A4 page
  ├─ yellow2.png #Yellow A4 page
  ├─ pink2.png #Pink A4 page 
  ├─ pink.png #Pink A4 page
  └ TestDir2
       │
       ├─ yellow.png #Blue A4 page
       └─ yellow.png #Blue A4 page

pink2.png и pink.png были созданы. pink2.png был создан сначала, тогда pink.png

8 duplicate photos were not imported:
/home/tim/Pictures/Test/red.png
/home/tim/Pictures/Test/yellow2.png
/home/tim/Pictures/Test/green.png
/home/tim/Pictures/Test/blue2.png
(and 4 more)

3 photos successfully imported.

, успешные импортированные были blue.png, yellow.png и pink2.png.

Из-за этого я предполагаю, что это использует алгоритм хеширования.

достаточно правильно, что изменение всего 1 пикселя цвета от зеленого до желтого на странице A4 заставило его не обнаруживать как дубликат. Довольно точный тогда!

На самом деле, я просто нашел это сообщение здесь :

, Как только эта ошибка исправлена, Shotwell будет использовать (исключительно) полный хеш MD5 файла для выполнения дублирующейся проверки, которая является симпатичным проклятым точным способом найти дубликаты.

На самом деле в исходный код , в строке 732 является этим: <глоток> Престижность Жереми Miserez

imported_full_md5_table.has_key(prepared_file.full_md5)) {

Кажется, что это использует хеш MD5!

Формы для дерева каталогов отсюда

11
ответ дан 17 November 2019 в 13:47

Другие вопросы по тегам:

Похожие вопросы: