LINUX.ORG.RU

imagemagick

anonymous
()
Ответ на: комментарий от i-rinat

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

Edible
() автор топика
Ответ на: комментарий от Edible

файлы <...> отличаются

Внутри PNG записывается чанк с меткой времени.

convert in.png -define png:exclude-chunk=time -crop 16x16 +repage +adjoin tiles_%04d.png
i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Не помогло. Пробовал и там где вы показали и перед tiles_%04d.png.

Edible
() автор топика
Ответ на: комментарий от dikiy

Мешает составить базу одинаковых «кусочков» - по имени и по md5 хэшу они разные, по изображению - одинаковые.

Edible
() автор топика
Ответ на: комментарий от Psych218
$ diff hd1.txt hd2.txt 
18c18
< 0000110 323a 2b35 3330 303a 7a30 72c4 00d5 0000
---
> 0000110 323a 2b37 3330 303a ed30 635b 00fc 0000
21c21
< 0000140 3a31 3532 302b 3a33 3030 990b 69ca 0000
---
> 0000140 3a31 3732 302b 3a33 3030 069c 40db 0000
Edible
() автор топика
Ответ на: комментарий от Psych218

Собственно сам код:

convert "$DIRECTORY_WORKING/file.png" -define png:exclude-chunk=date -crop "$GAME_WINDOW_WIDTH""x""$GAME_WINDOW_HEIGHT+$GAME_WINDOW_SHIFT_X""+""$GAME_WINDOW_SHIFT_Y" +repage "$DIRECTORY_WORKING/file_crop.png"
...
echo "# Step 5"
for i in *.png;
do
    mds=$(md5sum $i | cut -d ' ' -f 1)
    mv $i "$mds"".png"
done
Потом запускаю дважды и получаю второй сет файлов с теми же изображениеями но с другим хэшем
hd1.txt
0000000 5089 474e 0a0d 0a1a 0000 0d00 4849 5244
0000010 0000 1000 0000 1000 0302 0000 6200 179d
0000020 00f2 0000 6704 4d41 0041 b100 0b8f 61fc
0000030 0005 0000 7301 4752 0042 ceae e91c 0000
0000040 2000 4863 4d52 0000 267a 0000 8480 0000
0000050 00fa 0000 e880 0000 3075 0000 60ea 0000
0000060 983a 0000 7017 ba9c 3c51 0000 0c00 4c50
0000070 4554 3820 fcec fcfc f858 ff98 ffff a409
0000080 b1b4 0000 0100 4b62 4447 1103 4c0c 00f2
0000090 0000 7009 5948 0073 0000 0048 0000 0048
00000a0 c946 3e6b 0000 3c00 4449 5441 d708 9063
00000b0 6292 60c8 1300 6c19 0b8d 0890 c629 2085
00000c0 4162 9406 6b60 60c8 6b60 1303 5940 85b6
00000d0 5940 95c6 1acb 1818 56a4 3031 3030 00ad
00000e0 0d11 000c 6c02 5913 09ab ea20 0000 2500
00000f0 4574 7458 6164 6574 633a 6572 7461 0065
0000100 3032 3631 302d 2d32 3832 3154 3a36 3135
0000110 323a 2b35 3330 303a 7a30 72c4 00d5 0000
0000120 7425 5845 6474 7461 3a65 6f6d 6964 7966
0000130 3200 3130 2d36 3230 322d 5438 3631 353a
0000140 3a31 3532 302b 3a33 3030 990b 69ca 0000
0000150 0000 4549 444e 42ae 8260               
000015a

hd2.txt
0000000 5089 474e 0a0d 0a1a 0000 0d00 4849 5244
0000010 0000 1000 0000 1000 0302 0000 6200 179d
0000020 00f2 0000 6704 4d41 0041 b100 0b8f 61fc
0000030 0005 0000 7301 4752 0042 ceae e91c 0000
0000040 2000 4863 4d52 0000 267a 0000 8480 0000
0000050 00fa 0000 e880 0000 3075 0000 60ea 0000
0000060 983a 0000 7017 ba9c 3c51 0000 0c00 4c50
0000070 4554 3820 fcec fcfc f858 ff98 ffff a409
0000080 b1b4 0000 0100 4b62 4447 1103 4c0c 00f2
0000090 0000 7009 5948 0073 0000 0048 0000 0048
00000a0 c946 3e6b 0000 3c00 4449 5441 d708 9063
00000b0 6292 60c8 1300 6c19 0b8d 0890 c629 2085
00000c0 4162 9406 6b60 60c8 6b60 1303 5940 85b6
00000d0 5940 95c6 1acb 1818 56a4 3031 3030 00ad
00000e0 0d11 000c 6c02 5913 09ab ea20 0000 2500
00000f0 4574 7458 6164 6574 633a 6572 7461 0065
0000100 3032 3631 302d 2d32 3832 3154 3a36 3135
0000110 323a 2b37 3330 303a ed30 635b 00fc 0000
0000120 7425 5845 6474 7461 3a65 6f6d 6964 7966
0000130 3200 3130 2d36 3230 322d 5438 3631 353a
0000140 3a31 3732 302b 3a33 3030 069c 40db 0000
0000150 0000 4549 444e 42ae 8260               
000015a

Edible
() автор топика
Ответ на: комментарий от Psych218

Во. Значит заработало, но через следующий костыль: В той команде где -crop с нарезкой - игнорируется. Поэтому сделал цикл где переименовывается и берется хэш так:

echo "# Step 5"
for i in *.png;
do
    convert $i -define png:exclude-chunk=all $i"_.png"
    rm $i
    mv $i"_.png" $i
    mds=$(md5sum $i | cut -d ' ' -f 1)
    mv $i "$mds"".png"
done

Вот так ^^^ заработало. Файлы теперь одинаковые. Спасибо!

Edible
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.