Простой способ (инструмент?) для сравнения пикселя изображений для пикселя в различных форматах?

Если у вас есть

.../
  parent/
    project1/
    project2/

и все они имеют конфигурацию remote, то наиболее вероятная ситуация заключается в том, что

(1) Существует каталог .../parent/.git, который отображает parent и все его подпапки как рабочее дерево одного репо

(2) Не существует каталогов .../parent/project1/.git или .../parent/project2.git, которые бы отображали каждую папку проекта в свой собственный репозиторий git

]

Если раньше они вели себя как независимые репозитории, но не больше, то кажется, что каталог parent/.git каким-то образом был создан (возможно, через git init), и каким-то образом .git. каталоги были удалены.

Быстрый отказ от ответственности: я считаю очень маловероятным, что папки проектов .git были случайно удалены. В приведенном ниже совете принимается ситуация, представленная на первый взгляд, и поэтому она является недействительной, если замечания, изложенные в вопросе, являются неточными или если некоторые «мелкие детали» были опущены.

Тем не менее ... если вышеупомянутое действительно каким-то образом произошло, то удаление каталогов .git является значительной потерей данных (по крайней мере, локально). К счастью, git remotes можно рассматривать как своего рода «резервное копирование» большинства локальных данных, поэтому, если вы недавно синхронизировались с каждым удаленным проектом, вы сможете восстановить без особых хлопот. [тысяча сто тридцать одна]

Итак, первое, что я хотел бы сделать, оставив пока parent в покое, создать новый родительский каталог (например, .../parent2). В этом каталоге создайте новые клоны каждого репозитория проекта с удаленного компьютера.

Далее вы бы сравнили, что находится в каждом каталоге проекта в parent2 с тем, что находится в соответствующем каталоге в parent. (Вы можете использовать git diff или какой-либо другой инструмент для массовых различий, например, Beyond Compare.) И то, что вы делаете от этого, зависит от того, что вы найдете.

Если все проекты идентичны, значит, вам повезло; Вы можете просто стереть старую папку parent и переместить проекты из новой папки parent обратно в их исходные местоположения, и продолжить с этого места.

Если есть различия, вам, возможно, придется посмотреть, есть ли у вас локальные изменения не на пульте, есть ли на пульте изменения, которых у вас не было локально, или и то, и другое. Локальные изменения, не относящиеся к удаленному, могут быть зафиксированы в рамках коммитов (очевидно, случайного) монорэпо, которое вы в настоящее время имеете в parent - в этом случае их можно извлечь, используя git filter-branch с --parent-filter, а затем перенести в отдельный проект репо должны быть объединены любым способом, который имеет смысл. Или отдельные изменения могут быть потеряны, и вам, возможно, придется просто обновить отдельные состояния репозиториев, чтобы отразить ваши самые новые изменения.

И одно особое соображение - может быть, что одна (или более) из вновь клонированных копий содержат всю структуру parent. Это может произойти, если в какой-то момент вы задали URL-адрес репо parent, как если бы он был URL-адресом для конкретного проекта. Поиск в истории может выявить момент, когда это произошло.

Ни одна из этих процедур очистки не прописана на 100%, потому что слишком много неизвестно о том, что вы найдете в процессе повторного клонирования, и последующие шаги зависят от того, что вы найдете.

16
задан Luke Quinane 26 August 2009 в 00:48
поделиться

6 ответов

Спасибо за предложения.

Я попробовал Хромой подход сначала, который работает хорошо кроме тех случаев, когда разница между изображениями является очень небольшой. Я не мог найти, "улучшают различия" опция иметь очевидные значения, и гистограмма также только дает грубое представление различий.

В конце я использовал ImageMagick что-то, что я установил только что и забыл все о. Создание изображения различия/сравнения так же легко как ввод:

 compare first.jpg second.png difference.gif

в командной строке.

Это все приятно объяснено здесь.

16
ответ дан 30 November 2019 в 17:53
поделиться

Вы могли сделать намного хуже, чем Перцептивный Различный.

4
ответ дан 30 November 2019 в 17:53
поделиться

TortoiseIDiff является средством просмотра разности бесплатной картинки:

http://tortoisesvn.tigris.org/TortoiseIDiff.html

Это - часть TortoiseSVN, но может использоваться без Подверсии.

В зависимости от Вашего проекта не все файлы, которые являются объектом управления версиями, являются текстовыми файлами. Скорее всего, у Вас будут изображения также, например, снимки экрана и схемы для documentation/helpfile.

Для тех файлов не возможно использовать инструмент разности общего файла, потому что они только работают с текстовыми файлами и разностью линию за линией. Вот то, где инструмент Tortoise Image Diff (TortoiseIDiff) приходит на помощь. Это может показать два изображения бок о бок или даже показать изображения друг по другу смешанная альфа.

5
ответ дан 30 November 2019 в 17:53
поделиться

Используйте редактор изображений как Photoshop или Калека или что бы то ни было, который имеет несколько слоев. Создайте изображение где каждое исходное изображение в отдельном слое.

На данном этапе можно визуально сравнить изображения путем отключения видимости верхнего слоя и на.

В большинстве достойных редакторов можно также установить верхний слой на режим "различия". Теперь значение каждого пикселя изображения является абсолютной разностью пиксельных значений в основных изображениях. Можно использовать, например, инструмент гистограммы, чтобы видеть, идентичны ли изображения. Если они будут идентичны, то все пиксельные значения будут точно 0.

1
ответ дан 30 November 2019 в 17:53
поделиться

Для материала как это я люблю netpbm/pbmplus инструментарий. Можно использовать djpeg и pnmtoplainpnm преобразовать каждое изображение в простой формат ASCII. Вы затем просто читаете оба файла и испускаете новое изображение, которое показывает, где пиксели отличаются. Вы могли, например, вычислить Евклидово расстояние в пространстве RGB между старыми и новыми пикселями и испустить белый пиксель для нулевого различия, светло-серого для небольшой разницы, более темной для больших различий, и так далее. Формат ASCII прост и хорошо документируется на страницах справочника, и все стандартные программы средства просмотра могут просмотреть его непосредственно.

1
ответ дан 30 November 2019 в 17:53
поделиться

Последняя версия Слияния Araxis сделает изображение diffs (http://www.araxis.com/merge/topic_comparing_image_files.html).

К сожалению, это не бесплатное приложение поэтому, готовы ли Вы заплатить за него, другая вещь...

1
ответ дан 30 November 2019 в 17:53
поделиться
Другие вопросы по тегам:

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