Gallery Magick Image Processing provides an image file processing library and CMS plugins to manipulate image files, using any of these:
org.onehippo.forge.gallerymagick.core.command.ScalrProcessorUtils
utility class
provides a pure Java based image identifying/resizing solution.
When using a non-Java based solution, it executes commands of either GraphicsMagick or ImageMagick):
Gallery Magick Image Processing basically aims to provide the following:
When images are uploaded through Gallery Magick Image Processing CMS Plugins,
the plugin will extract all the image metadata automatically (through identify -verbose
command internally)
and store the result metadata string in gallerymagick.metadata (string)
property at the
hippogallery:imageset
node (the parent node of all the image variant nodes such as
hippogallery:original
or hippogallery:thumbnail
).
So, you can easily read the gallerymagick.metadata
property to read the metadata such as camera maker,
geo-location where the photo was taken, etc. Here's an example of image metadata extracted by GraphicsMagick:
Image: IMG_4181_2.JPG Format: JPEG (Joint Photographic Experts Group JFIF format) Geometry: 1600x1200 Class: DirectClass Type: true color Depth: 8 bits-per-pixel component # SNIP Profile-EXIF: 1912 bytes Make: Apple Model: iPhone 6 Orientation: 1 X Resolution: 72/1 Y Resolution: 72/1 Resolution Unit: 2 Software: 10.2 Date Time: 2018:04:03 15:29:38 # SNIP GPS Info: 1596 GPS Latitude Ref: N GPS Latitude: 42/1,21/1,1463/100 GPS Longitude Ref: W GPS Longitude: 71/1,3/1,3160/100 GPS Altitude Ref: . GPS Altitude: 12786/359 GPS Time Stamp: 19/1,29/1,33/1 GPS Speed Ref: K GPS Speed: 0/1 GPS Img Direction Ref: T GPS Img Direction: 15709/56 GPS Dest Bearing Ref: T GPS Dest Bearing: 15709/56 GPS Date Stamp: 2018:04:03 Profile-XMP: 2549 bytes Tainted: False User Time: 0.030u Elapsed Time: 0m:0.035343s Pixels Per Second: 51.8Mi
The code of this project is on GitHub at https://github.com/bloomreach-forge/gallery-magick/.
There is a demo submodule in which you can build and run a demo application, which configures Magick Command Gallery Processor Plugin.
Here are example commands to check out, build and run demo application:
$ cd demo $ mvn clean verify $ mvn -P cargo.run
Visit http://localhost:8080/cms/, move to the "Content" perspective and select "Images".
And select a folder and try to upload an image.
If you click on the "Upload" button, you will see the image being uploaded.
You don't see anything new yet. :-) It's basically working like how the default Gallery Processor works, so the functionally is almost the same.
However, if you take a look at the logs (the demo project is configured to leave logs in DEBUG level for the plugin related code by default), you will see clues about how the plugin works under the hood!
Note: the log data shown above were minified for readability.
Basically, when either of the non-Java based solution, the plugin copies the original image data to a temporary file and resizes the temporary file of the original image for a thumbnail image by executing commands of either GraphicsMagick or ImageMagick. After executing the commands, it deletes all the temporary files.
Also, try to crop and restore thumbnails in the CMS UI to get more clues.
Please see Release Notes.