Subject: bug#23070: 25.1.50; Wishlist: image mode should have a command to display (and edit?) exif data

From: Lars Magne Ingebrigtsen <[email-masked]>
Date: Sun, 20 Mar 2016 20:18:20 +0100

I had a peek at the exif data format, and it's quite simple.  Parsing it
in Lisp shouldn't be too much work.

But does anybody know whether the ImageMagick library already supports
digging out this information?  I googled for five minutes, and all I
could find were command line examples, but not anything from the C
level...

Anybody know?

In GNU Emacs 25.1.50.32 (x86_64-unknown-linux-gnu, GTK+ Version 3.4.2)
 of 2016-03-20 built on stories
Repository revision: 565df7265dd73b4812fcb02cd1663fce4dc40be7
Windowing system distributor 'The X.Org Foundation', version 11.0.11204000
System Description:	Debian GNU/Linux 7.9 (wheezy)

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GSETTINGS NOTIFY GNUTLS
LIBXML2 FREETYPE LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11

Important settings:
  value of $LANG: en_US
  locale-coding-system: iso-latin-1-unix

Major mode: Group

Minor modes in effect:
  gnus-agent-group-mode: t
  shell-dirtrack-mode: t
  diff-auto-refine-mode: t
  gnus-topic-mode: t
  gnus-undo-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t

Recent messages:
Wrote /home/larsi/Mail/ding/85289
nnml: Reading incoming mail (1 new)...done
Reading active file via nnml...done
Reading active file via nnmh...done
Reading active file from archive via nnfolder...done
Reading active file from archive via nnfolder...done
Reading active file via nndraft...done
Reading active file via nnmbox...done
Checking new news...done
Making completion list...

Load-path shadows:
/home/larsi/src/clock.el/clock hides /home/larsi/lisp/clock
/home/larsi/src/cddb.el/expect hides /home/larsi/lisp/expect
/home/larsi/src/pvr.el/pvr hides /home/larsi/lisp/pvr
~/pgnus/contrib/vcard hides /home/larsi/lisp/vcard
/home/larsi/src/cddb.el/captitle hides /home/larsi/lisp/captitle
~/lisp/zenirc-2.112/src/zenirc-example hides /home/larsi/lisp/zenirc-example
/home/larsi/lisp/dom hides /home/larsi/src/emacs/trunk/lisp/dom
~/pgnus/contrib/compface hides /home/larsi/src/emacs/trunk/lisp/image/compface

Features:
(shadow emacsbug make-mode vc-annotate dired-aux pulse shell pcomplete
comint etags xref project cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs eieio-opt speedbar sb-image
ezimage dframe find-func ffap thingatpt pp mailalias smtpmail sendmail
ecomplete sgml-mode log-edit ring pcvs-util vc-bzr vc-src vc-sccs vc-svn
vc-rcs vc-dir ewoc bug-reference whitespace edebug url-file url-dired
vc-git diff-mode map flow-fill crm misearch multi-isearch shr-color
color vc vc-dispatcher copyright vc-cvs eww gnus-html url-queue help-fns
url-cache gnus-picon sort gnus-cite smiley ansi-color mm-archive
gnus-async gnus-dup qp gnus-ml gmane spam-gmane dns mm-url disp-table
gnus-fun gnus-mdrtn pop3 nndoc nnmbox nndraft utf-7 gnus-topic nnmh nnml
nnfolder network-stream nsm starttls nnir spam-report spam spam-stat
gnus-uu yenc gnus-agent gnus-srvr gnus-score score-mode nnvirtual
gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig nntp
gnus-cache gnus-sum gnus-group gnus-undo gnus-start gnus-cloud nnimap
nnmail mail-source utf7 netrc nnoo parse-time gnus-spec gnus-int
gnus-range message format-spec rfc822 mml mml-sec epa epg mailabbrev
gmm-utils mailheader gnus-win gnus nnheader gnus-util rmail
rmail-loaddefs mail-utils movie mkv shr svg imdb dom pvr debug
debbugs-gnu easy-mmode derived debbugs soap-client mm-decode mm-bodies
mm-encode url-http tls gnutls url-auth mail-parse rfc2231 rfc2047
rfc2045 ietf-drums url-gw puny url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-domsuf url-util mailcap warnings
rng-xsd rng-dt rng-util xsd-regexp xml ido seq flyspell ispell benchmark
w3m browse-url doc-view subr-x dired dired-loaddefs image-mode timezone
w3m-hist w3m-fb w3m-ems wid-edit w3m-ccl ccl w3m-favicon w3m-image
w3m-proc w3m-util add-log mail-extr mm-util mail-prsvr jka-compr cl
finder-inf package epg-config url-handlers url-parse auth-source cl-seq
eieio byte-opt bytecomp byte-compile cl-extra help-mode easymenu cconv
eieio-core cl-macs gv eieio-loaddefs cl-loaddefs pcase cl-lib
password-cache url-vars time-date mule-util tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment elisp-mode lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core term/tty-colors frame cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese charscript case-table epa-hook
jka-cmpr-hook help simple abbrev obarray minibuffer cl-preloaded nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote inotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 6264828 492654)
 (symbols 48 176174 292)
 (miscs 40 969 5352)
 (strings 32 462173 64176)
 (string-bytes 1 31327084)
 (vectors 16 54235)
 (vector-slots 8 1869748 141531)
 (floats 8 8721 9060)
 (intervals 56 1422839 22127)
 (buffers 976 129)
 (heap 1024 461366 226787))

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no