mono / libgdiplus

C-based implementation of the GDI+ API
http://www.mono-project.com/
MIT License
334 stars 171 forks source link

Image.PropertyItems is empty on Mac OSX #618

Open cederstrom opened 4 years ago

cederstrom commented 4 years ago

We have implemented some custom EXIF resolution extraction code as a workaround for #611. The code reads tags from Image.PropertyItems.

This works well on Windows and Linux.

However, on OSX the PropertyItems list is empty.

This is the output of otool -L for mono-libgdiplus:

/usr/local/Cellar/mono-libgdiplus/6.0.4_1 $ otool -L lib/libgdiplus.0.dylib 
lib/libgdiplus.0.dylib:
    /usr/local/opt/mono-libgdiplus/lib/libgdiplus.0.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/local/opt/glib/lib/libglib-2.0.0.dylib (compatibility version 6201.0.0, current version 6201.3.0)
    /usr/local/opt/gettext/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.6.0)
    /usr/local/opt/cairo/lib/libcairo.2.dylib (compatibility version 11603.0.0, current version 11603.0.0)
    /usr/local/opt/freetype/lib/libfreetype.6.dylib (compatibility version 24.0.0, current version 24.1.0)
    /usr/local/opt/jpeg/lib/libjpeg.9.dylib (compatibility version 13.0.0, current version 13.0.0)
    /usr/local/opt/libtiff/lib/libtiff.5.dylib (compatibility version 11.0.0, current version 11.0.0)
    /usr/local/opt/giflib/lib/libgif.dylib (compatibility version 0.0.0, current version 7.2.0)
    /usr/local/opt/libpng/lib/libpng16.16.dylib (compatibility version 54.0.0, current version 54.0.0)
    /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
    /usr/local/opt/libexif/lib/libexif.12.dylib (compatibility version 16.0.0, current version 16.3.0)
    /usr/local/opt/fontconfig/lib/libfontconfig.1.dylib (compatibility version 14.0.0, current version 14.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.0.0)

And here's info from brew about mono-libgdiplus:

$ brew info mono-libgdiplus
mono-libgdiplus: stable 6.0.4 (bottled)
GDI+-compatible API on non-Windows operating systems
https://www.mono-project.com/docs/gui/libgdiplus/
/usr/local/Cellar/mono-libgdiplus/6.0.4_1 (13 files, 1MB) *
  Poured from bottle on 2020-01-09 at 10:48:02
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/mono-libgdiplus.rb
==> Dependencies
Build: autoconf ✔, automake ✔, libtool ✔, pkg-config ✔
Required: cairo ✔, fontconfig ✔, freetype ✔, gettext ✔, giflib ✔, glib ✔, jpeg ✔, libexif ✔, libpng ✔, libtiff ✔, pixman ✔
==> Analytics
install: 712 (30 days), 2,560 (90 days), 5,659 (365 days)
install-on-request: 711 (30 days), 2,542 (90 days), 5,621 (365 days)
build-error: 0 (30 days)

Given that libexif is a dependency, we would have expected PropertyItems to be non-empty. What are we missing?

This is the test file we are using: exif