Cached Image Dimensions
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
Research direction
Start by tracing JSONLDExporter.java, getUncachedImageStream, and createProjectFromManifest, focusing on how image dimensions are read and stored in SQL. Compare the proposed caching, background update, exporter, and transcription-interface paths. Done means the selected approach avoids the slow /full/full request and ensures interfaces receive dimensions that support the larger IIIF image.
Written by the indexing model from the issue text.
Description
For /manifest and by extension the transcription interface, we are going to process IIIF Image API /full/full images special. In the cases where the back end has to getUncachedImageStream (when it needs Dimensions for Canvases and Images in the Manifest that are not cached in the SQL, happens when the front end triggers JSONLDExporter.java for a project for the first time) we are going to ask for those dimensions using /full/,200. Why? Because it takes 10 minutes to do /full/full for 220 Canvases. It takes 45 seconds to do /full/,150 for the same Manifest.
As a consequence, the images natural size will be cached as x, 150 in relation to the Canvases w, 1000. This means all interfaces that receive this Canvas object will be expected to attempt to render the larger image. The transcription and parsing interfaces do this already. If other interfaces don't, interoperability scenarios will be using a low res image.
We want eliminate this scenario entirely.
-
If the image dimensions were cached during
createProjectFromManifestusers wouldn't experience the lag when they load the manifest. -
Perhaps a background script or thread to go through the cached dimensions in SQL, detect this IIIF Image scenario, and update the size or a patch in JSONLDExporter that detects it and automatically updates the URL to /full/,2000 or better and figures the Canvas and Image dimensions on the spot (it won't need to resolve the image to do this so the delay is eliminated) before sending the Manifest object forward.
-
Let the transcription interface detect this scenario after it loads the Manifest and Image, and let it update the cached dimensions per folio.
- Dominant language
- Java
- Stars
- 4
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from CenterForDigitalHumanities/TPEN28
-
bug IIIF interoperability
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 3/5 1-2 days Newbie friendliness 38/100
-
interoperability
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
interoperability
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
servicesOpeninteroperability
Difficulty 2/5 1-3 hours Newbie friendliness 35/100
All issues in CenterForDigitalHumanities/TPEN28
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
hiero-ledger/hiero-sdk-java#3010 ·
Maintainers usually reply within 1 day
-
Optimize consumer version heatmap aggregation to avoid repeated scansPossibly taken @praykaria31 claimed this today. Opentype/enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Apicurio/apicurio-registry#10662 · 1 comment ·
Maintainers usually reply within 1 day
-
a:false-positive
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
Maintainers usually reply within 1 day
-
status: waiting-for-triage
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
spring-projects/spring-boot#52347 ·
Maintainers usually reply within 2 days
-
bug untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
opensearch-project/opensearch-migrations#3480 ·
Maintainers usually reply within 2 days