#!/bin/bash # uses exiftool, yad and graphicsmagick to find/edit JPG comment. # GPLv3, written by Paul Sherman, Absolute Linux # Sunday, 07/24/2022 if [[ "$DISPLAY" && "$(which Xdialog 2>&1 | grep -v "which: no")" ]]; then dialog="Xdialog" else dialog="dialog" fi if [ "$1" == "" ]; then $dialog --title "No JPG to comment" --msgbox "\nThis utility needs to be passed the filename of a JPG image, including the path.\n" 0 0 exit 0 fi pth=`dirname "$1"` cd $pth isjpg=`gm identify "$1" | grep JPEG` if [ -z "$isjpg" ]; then $dialog --title "No valid JPG file" --msgbox "\nThis utility needs to be passed the filename of a JPG image, including the path.\n" 0 0 exit 0 fi origcom=`exiftool -Comment "$1" | cut -d: -f2- | xargs` if [ -z "$origcom" ]; then origcom=" - IS BLANK -" fi echo 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAEBXpUWHRSYXcgcHJvZmlsZSB0eXBl IGV4aWYAAHjarZZZksMoDIbfdYo5giWxHofFVM0N5vjzY4MTZ+uk06ZiYQGS0McSWv/7t9E/eGSJ gYz1wUXnFjwmmigJlbDsT9revJjtPT6WWTnp6WgQqBRS98/ghn6FXtBfhr4MOwl6e2UorqMhnxvS MCRhOJgehyPl3cEyDFMahlSGZ7N/531ai4vBX0+hjP5ttG9pwI/6y6gXZx17g7eRxXsXUQ+yGI+8 1R5om3nzw9DNN82ugphkVdYFb9MjVISvQRPk/o7SNQZ1g9au4T1S0BLqFjnOvL5+XkVOM/SB/IT0 qPET/RVp2hI6G/SGkDvkQz3bi56ukW7crjw7d3g+6Ys7XBzkaOJrrYbW1n12yThM2Y1JzalsNfTL PVvbqG7Q42eX0JPdS0QJ2BIF66hikWWUwpEFGBsbrpy48brJwgUhGlnFQ4oUUS4EZQCMKEV3uCjc xGvUCuyiBctBO/AjFt7cxs1d4QDHlQNh9TCMMYZ8VeidTq31DcW8hCNXiEv6TkMUnRwzLYxuIMJt JNVuCZ7l9ulcFQTtluaACaYldwvAny1fFpduoBUdLeS+gdnXYQApQgQWwbCCwOJYLTtevAh5ZiQy AFBC6KJGMrCwtVIRpBhVBzjYBfCNMZ63rmJlV+MgBAirjtSDTdQEWMZYrB9vAtZQsmqNtdZZb4ON Njl1fYc5510/UZNXb7z1znsffPSJggYTbHDBhxBiSFGi4sS1EfsxhhhjSnCaYDlhdEKHlLJkzSbb 7LLPIcecilDRYootrvgSSiypStWKfVxd9TXUWNPKK5bSala7utWvYY1ralhqTZtptrnmW2iRWjqo Dax35QNqPKjJRqp39Ac1aL2fJrgfJ7YzAzExDOC+E2Alkc5sCWyMdHKd2RIFu8IKgrQdTuVODATN ymIbH+wu5Cyp+xtuBBDyF+Soo3uD3D23R9Rq2i463Qj1bdiTuih2X4ttDUlC6jflS0k/dXhXPjfU UnEf2KJPnLvKxvY7vaZNhQuxf+M284VSHnWeutrajeodSZ8OOPksFxV9F8dF0ndxXMKg9nO3tyS9 cn0/3cfRtG+T/TG153Gckv3brJwl/T4rZ0v0fXZeGnovDl90qhwtdmzEHyTXo4azrN51osej2gOV vx3OYcZjbaL9PFjSayl1Ds5P0kTvpgd/RF7mm/5kWZ8MPYok59us5iPIZSYI9+DYtL4UnVnjmRQz K3ZW3F3TdYXOKlxw7574Lbc0q1Eczbr69B7AJ5LuGnRt7UbFRxT4sz+r3h+zEFRohFnnhZq/pvZ6 HdVLqz47/E/L7deH0xu3yDmeebfqFb11XtnI4dd/Jeh2deBPTqT/AaWap4QjhZbrAAAAYHpUWHRS YXcgcHJvZmlsZSB0eXBlIGlwdGMAAHjaPYnBDYBQCEPvTOEIQJvIX0e4ePPg/hFJtE0b6JPzulO2 EV0QdC6Wsv3LylIde58Bh8IQ3W/WkGxy9Mr2cPH6XlV5ADKzFOH1FGNYAAAPQ2lUWHRYTUw6Y29t LmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6 TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0i WE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3Lncz Lm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjph Ym91dD0iIgogICAgeG1sbnM6aXB0Y0V4dD0iaHR0cDovL2lwdGMub3JnL3N0ZC9JcHRjNHhtcEV4 dC8yMDA4LTAyLTI5LyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8x LjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw ZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOnBsdXM9Imh0dHA6Ly9ucy51c2VwbHVzLm9yZy9s ZGYveG1wLzEuMC8iCiAgICB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAg ICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczp4 bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9Imdp bXA6ZG9jaWQ6Z2ltcDo3MjhhOGNjYi02NGM2LTRiYTYtYjRhYS03MDY1OGQ5ZjYwMDMiCiAgIHht cE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YmZkMDViM2MtMTUyYi00OTZjLWIzYmYtMTAxYTA3MzI4 YWM2IgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NzA1MTM3MWMtOTc0OS00 ZmJlLTg1NmQtNzkzODA5YzAyNTM4IgogICBHSU1QOkFQST0iMi4wIgogICBHSU1QOlBsYXRmb3Jt PSJMaW51eCIKICAgR0lNUDpUaW1lU3RhbXA9IjE1MzM4NDAxMjEwNzg2NDUiCiAgIEdJTVA6VmVy c2lvbj0iMi4xMC40IgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgeG1wOkNyZWF0b3JUb29s PSJHSU1QIDIuMTAiPgogICA8aXB0Y0V4dDpMb2NhdGlvbkNyZWF0ZWQ+CiAgICA8cmRmOkJhZy8+ CiAgIDwvaXB0Y0V4dDpMb2NhdGlvbkNyZWF0ZWQ+CiAgIDxpcHRjRXh0OkxvY2F0aW9uU2hvd24+ CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpMb2NhdGlvblNob3duPgogICA8aXB0Y0V4dDpB cnR3b3JrT3JPYmplY3Q+CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpBcnR3b3JrT3JPYmpl Y3Q+CiAgIDxpcHRjRXh0OlJlZ2lzdHJ5SWQ+CiAgICA8cmRmOkJhZy8+CiAgIDwvaXB0Y0V4dDpS ZWdpc3RyeUlkPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkK ICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAg c3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo2NmI3MTQwNy1lMTVlLTQyMzItOGU2ZC01NzM3NTY2 YTMzMDUiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoTGludXgpIgogICAg ICBzdEV2dDp3aGVuPSItMDQ6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5 PgogICA8cGx1czpJbWFnZVN1cHBsaWVyPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6SW1hZ2VT dXBwbGllcj4KICAgPHBsdXM6SW1hZ2VDcmVhdG9yPgogICAgPHJkZjpTZXEvPgogICA8L3BsdXM6 SW1hZ2VDcmVhdG9yPgogICA8cGx1czpDb3B5cmlnaHRPd25lcj4KICAgIDxyZGY6U2VxLz4KICAg PC9wbHVzOkNvcHlyaWdodE93bmVyPgogICA8cGx1czpMaWNlbnNvcj4KICAgIDxyZGY6U2VxLz4K ICAgPC9wbHVzOkxpY2Vuc29yPgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6 eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+c78PlwAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAN 1wAADdcBQiibeAAAAAd0SU1FB+IICRIqAd3un8IAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRo IEdJTVBXgQ4XAAAA50lEQVQ4y9VTMY6DMBAcw+IgqktHCVfkGVfzAqpUSMkb4AVQ5yd09PlCmmui lNScBHcSeK8IipwQFBKqjDTN2rMa73gFAMYMEADkeT5ZoM7467ruNwzDpQDAzK+ZEELAwEzQbccp 0B3T2MH7OLgaoud5EEIM6Pv+eBJ6jGVZoq7rwSXHceC67t0YZ/8DAoA4ji+FNE3Rti2iKNpXVWUS kWVZlpRSLohI6gTwgX4XLlRKcRAE37f1MRIzZwCOzPxlGMY6SZKfoihWTdPsbNs+PHjFp74kmd6Z mdOnBqKU2pqmeerFm6m6f9vOcbRQ6K3oAAAAAElFTkSuQmCC' | base64 -d > /tmp/icon.png action=$(yad --title="$(basename $1)" --window-icon="/tmp/icon.png" --width=480 --center \ --text=" Current comment:\n\n $origcom \n\n\n Enter text below to change the comment\n" --entry) ret=$? if [ "$ret" != "0" ]; then exit 0 fi if [ -z "$action" ]; then action="" fi rm /tmp/icon.png 2>/dev/null exiftool -comment="$action" -q "$1" $dialog --title "COMPLETE" --msgbox "\nThe JPG comment has been modified.\n" 0 0