Project

General

Profile

Feature #1426

API: Display image smaller size

Added by Bernhard Koschiček-Krombholz almost 2 years ago. Updated about 1 year ago.

Status:
Closed
Priority:
Normal
Category:
API
Target version:
Start date:
2021-04-02
Estimated time:

Description

Some images can be very large in file size. Since the API should also provide data for different front-ends, it can be useful, that API clients can forcefully downsize images. One idea is, that the normal display path will show the full image. With parameters the client can demand a 30% size version of the image. Or the image pixel size will be downsized to a number like 1200px. The path will be /api/display/image.jpg?size=30 or /api/display/hsize=1200 or /api/display/vsize=1200 (horizontal and vertical size)

If python can not do it by itself, maybe the Pillow package can do this.


Related issues

Related to Feature #1280: Picture PreviewClosed2021-04-02Actions
Related to Question #1517: decide on/implement content negotiation for image APIClosed2021-05-17Actions
Follows Feature #1492: Image Processing Closed2021-04-01Actions

History

#1

Updated by Alexander Watzinger almost 2 years ago

#2

Updated by Alexander Watzinger almost 2 years ago

My take on this is that we will need some image processing in OpenAtlas sooner or later anyway. I linked a related issue about previews and although nobody wrote a ticket so far some people mentioned they would like a slideshow and similar. Once we have solved this for OpenAtlas (thumbnails, previews, slideshows, ...) we could decide if this is sufficient for the API too or if we would need extra functionality there.

What would be needed now is a volunteer who delves into this topic and drafts a solution proposal which we can than discuss together ;)
I started a draft and everybody is welcomed to join/take over: Image processing

#3

Updated by Bernhard Koschiček-Krombholz over 1 year ago

I tried to play around with Pillow, but sadly couldn't make it work on my machine.

#4

Updated by Bernhard Koschiček-Krombholz over 1 year ago

pillow has no buster package... I looked into pythonmagick (https://packages.debian.org/buster/python3-pythonmagick) and found Wand (https://packages.debian.org/buster/libmagickwand-dev) with following documentation: https://docs.wand-py.org/en/0.6.5/.
Alex, can you look at the package https://packages.debian.org/buster/libmagickwand-dev and tell me, if this will work with OA installations?

#5

Updated by Bernhard Koschiček-Krombholz over 1 year ago

If now more and more projects asks for IIIF standard, maybe it is better to got straight to IIIF implementation?

#6

Updated by Bernhard Koschiček-Krombholz over 1 year ago

  • Start date changed from 2020-12-01 to 2021-04-02
  • Follows Feature #1492: Image Processing added
#7

Updated by Bernhard Koschiček-Krombholz over 1 year ago

  • Status changed from Acknowledged to In Progress

Feature is done, testing and mypy in progress

#8

Updated by Christoph Hoffmann over 1 year ago

  • Related to Question #1517: decide on/implement content negotiation for image API added
#9

Updated by Bernhard Koschiček-Krombholz over 1 year ago

  • Status changed from In Progress to Resolved

It is possible to get different sizes of images through an API request at the endpoint http://127.0.0.1:5000/api/display/ and the parameter image_size. Possible arguments are: 'thumbnail' (200px), 'table' (100px).

#10

Updated by Bernhard Koschiček-Krombholz about 1 year ago

  • Status changed from Resolved to Closed
  • Target version changed from 208 to 6.4.0
#11

Updated by Alexander Watzinger about 1 year ago

  • Subject changed from API: display image smaller size to API: Display image smaller size

Also available in: Atom PDF