Создайте один и тот же PNG с помощью ImageMagick 2 раза: двоичные файлы различаются

Кто-нибудь пытался установить другой загрузочный дистрибутив на диск sdb? Возможно, это сломало ваш загрузчик (ы). Похоже, вы установили syslinux на sdb и grub 2 на sda, которые являются загрузчиками. Вы можете попробовать вставить live CD из любого дистрибутива Linux и chroot в sda / sdb. Возможно, удаление обоих и повторная установка одного из них исправит это. Помощь для этого можно найти здесь .

Или, может быть, просто установите для загрузочного флага sdb значение false с помощью fdisk. ( Здесь, в точке 6 )

5
14.01.2016, 11:36
3 ответа

Вы можете использовать параметр -strip :

$ convert -strip -size 1x1 xc:white out1/w.png
$ convert -strip -size 1x1 xc:white out2/w.png
$ md5sum out1/w.png out2/w.png 
<...same data...> *out1/w.png 
<...same data...> *out2/w.png 

РЕДАКТИРОВАТЬ:

Может быть ошибка в png-кодировщике, поэтому, если этот метод не работает, попробуйте один из следующих:

Параметр + set удаляет определенную информацию в сгенерированном файл. Здесь мы удаляем даты создания и модификации.

$ convert +set date:create +set date:modify -size 1x1 xc:white out1/w.png
$ convert +set date:create +set date:modify -size 1x1 xc:white out2/w.png

или (вторая форма, тест, чтобы выбрать тот, который вам подходит)

$ convert +set date:create +set modify-date -size 1x1 xc:white out1/w.png
$ convert +set date:create +set create-date -size 1x1 xc:white out2/w.png

источник: http://www.imagemagick.org/script/command-line-options.php

2
27.01.2020, 20:37

Должна быть предусмотрена возможность удаления временных меток с помощью -define png: exclude-chunks = date, time ; но очевидно ошибка в кодировщике PNG .

Если вы можете подготовить свои модификации, одна из возможностей заключалась бы в использовании подписи identify для замены существующего изображения только в случае изменения пиксельного содержимого изображения:

mkdir out
convert -size 1x1 xc:white out/w.png
if [ ! -f w.png ]; then
    mv out/w.png w.png
else
    if [ "$(identify -verbose w.png | awk '/ignature/ { print $2 }')" != "$(identify -verbose out/w.png | awk '/ignature/ { print $2 }')" ]; then
        mv out/w.png w.png
    else
        rm out/w.png
    fi
fi
5
27.01.2020, 20:37

параметр преобразования -define png:exclude-chunks=date,timeработает должным образом и всегда создает один и тот же целевой двоичный файл для «ImageMagick 6.8.9 -9 Q16 x86 _64 2018 -11 -11»(convert -v).

0
11.02.2020, 16:55

Теги

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