Skip to content
Snippets Groups Projects
Commit d9f2d3bd authored by Toke Eskildsen's avatar Toke Eskildsen
Browse files

Added blowout overlays to folder view

parent 43d71fd6
No related branches found
No related tags found
No related merge requests found
...@@ -34,7 +34,6 @@ An enhanced [ALTO](http://www.loc.gov/standards/alto/)-viewer for Quality Assura ...@@ -34,7 +34,6 @@ An enhanced [ALTO](http://www.loc.gov/standards/alto/)-viewer for Quality Assura
* ALTO files at another location than image files * ALTO files at another location than image files
* Add image & ALTO sample files * Add image & ALTO sample files
* Integrate greyscale statistics * Integrate greyscale statistics
* Show blown high- and low-lights on the thumbnail in folder view
## Verbiage ## Verbiage
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Quack - ${SRC_FOLDER}</title> <title>Quack - ${SRC_FOLDER}</title>
<link rel="stylesheet" type="text/css" href="${UP}quack.css" /> <link rel="stylesheet" type="text/css" href="${UP}quack.css" />
<script src="${UP}quack_folder.js"></script>
</head> </head>
<body class="folder"> <body class="folder">
...@@ -15,6 +16,7 @@ ...@@ -15,6 +16,7 @@
<div class="images"> <div class="images">
<h2>Pages</h2> <h2>Pages</h2>
<p><input type="checkbox" id="toggle_blown_thumbs" onClick="toggleBlownThumbs();">Show absolute black and white</input></p>
<div class="thumbs">${THUMBS_HTML}</div> <div class="thumbs">${THUMBS_HTML}</div>
<div class="imagelinks"> <div class="imagelinks">
${IMAGES_HTML} ${IMAGES_HTML}
......
...@@ -149,3 +149,22 @@ ul.alternatives li + li:before { ...@@ -149,3 +149,22 @@ ul.alternatives li + li:before {
border: 1px solid black; border: 1px solid black;
overflow: hidden; overflow: hidden;
} }
/* Folder view specific styles below */
div.imagelinks {
clear: both;
}
div.thumb {
float: left;
}
div.thumbs a {
position: relative;
display: block;
}
.thumboverlay {
/* Hidden by default, enable with JavaScript */
display: none;
position: absolute;
top: 0;
left: 0;
}
//! Toggling of grid and overlays //! Toggling of grid and overlays
function toggleGrid() { function toggleGrid() {
if (document.getElementById('toggle_grid').checked) { if (document.getElementById('toggle_grid').checked) {
state = 'block'; state = 'block';
} else { } else {
...@@ -127,6 +128,8 @@ function outOverlay(overlay) { ...@@ -127,6 +128,8 @@ function outOverlay(overlay) {
} }
function setupJS() { function setupJS() {
// TODO: Check if this is an image page and if not, exit immediately
toggleGrid(); toggleGrid();
toggleTextBlock(); toggleTextBlock();
toggleBlown(); toggleBlown();
...@@ -152,3 +155,4 @@ function setupJS() { ...@@ -152,3 +155,4 @@ function setupJS() {
} }
} }
window.onload=setupJS; window.onload=setupJS;
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
# #
# #
# Quack 1.1 beta - Quality assurance tool for text scanning projects. # Quack 1.2 beta - Quality assurance tool for text scanning projects.
# #
# Generates zoomable (OpenSeadragon) views of scanned text pages with overlays # Generates zoomable (OpenSeadragon) views of scanned text pages with overlays
# containing OCR-text from ALTO-files. The views are static HTML pages that # containing OCR-text from ALTO-files. The views are static HTML pages that
...@@ -178,7 +178,7 @@ function copyFiles () { ...@@ -178,7 +178,7 @@ function copyFiles () {
mkdir -p $DEST mkdir -p $DEST
fi fi
cp "${ROOT}/${DRAGON}" "$DEST" cp "${ROOT}/${DRAGON}" "$DEST"
cp "${ROOT}/quack.js" "$DEST" cp ${ROOT}/*.js "$DEST"
cp ${ROOT}/*.css "$DEST" cp ${ROOT}/*.css "$DEST"
} }
...@@ -216,6 +216,7 @@ function makeImageParams() { ...@@ -216,6 +216,7 @@ function makeImageParams() {
DEST_IMAGE="${DEST_FOLDER}/${BASE}.${IMAGE_DISP_EXT}" DEST_IMAGE="${DEST_FOLDER}/${BASE}.${IMAGE_DISP_EXT}"
HIST_IMAGE="${DEST_FOLDER}/${BASE}.histogram.png" HIST_IMAGE="${DEST_FOLDER}/${BASE}.histogram.png"
THUMB_IMAGE="${DEST_FOLDER}/${BASE}.thumb.jpg" THUMB_IMAGE="${DEST_FOLDER}/${BASE}.thumb.jpg"
THUMB_LINK=${THUMB_IMAGE##*/}
WHITE_IMAGE="${DEST_FOLDER}/${BASE}.white.png" WHITE_IMAGE="${DEST_FOLDER}/${BASE}.white.png"
BLACK_IMAGE="${DEST_FOLDER}/${BASE}.black.png" BLACK_IMAGE="${DEST_FOLDER}/${BASE}.black.png"
PRESENTATION_IMAGE="${DEST_FOLDER}/${BASE}.presentation.jpg" PRESENTATION_IMAGE="${DEST_FOLDER}/${BASE}.presentation.jpg"
...@@ -265,6 +266,7 @@ function makeImages() { ...@@ -265,6 +266,7 @@ function makeImages() {
local DEST_IMAGE="${DEST_FOLDER}/${BASE}.${IMAGE_DISP_EXT}" local DEST_IMAGE="${DEST_FOLDER}/${BASE}.${IMAGE_DISP_EXT}"
local HIST_IMAGE="${DEST_FOLDER}/${BASE}.histogram.png" local HIST_IMAGE="${DEST_FOLDER}/${BASE}.histogram.png"
local THUMB_IMAGE="${DEST_FOLDER}/${BASE}.thumb.jpg" local THUMB_IMAGE="${DEST_FOLDER}/${BASE}.thumb.jpg"
local THUMB_LINK=${THUMB_IMAGE##*/}
local WHITE_IMAGE="${DEST_FOLDER}/${BASE}.white.png" local WHITE_IMAGE="${DEST_FOLDER}/${BASE}.white.png"
local BLACK_IMAGE="${DEST_FOLDER}/${BASE}.black.png" local BLACK_IMAGE="${DEST_FOLDER}/${BASE}.black.png"
local THUMB_OVERLAY_WHITE="${DEST_FOLDER}/${BASE}.white.thumb.png" local THUMB_OVERLAY_WHITE="${DEST_FOLDER}/${BASE}.white.thumb.png"
...@@ -333,8 +335,8 @@ function makeImages() { ...@@ -333,8 +335,8 @@ function makeImages() {
# handle resizing of alpha-channel PNGs followed by color reduction # handle resizing of alpha-channel PNGs followed by color reduction
convert "$BLACK_IMAGE" -resize $THUMB_IMAGE_SIZE -colors 2 "$THUMB_OVERLAY_BLACK" convert "$BLACK_IMAGE" -resize $THUMB_IMAGE_SIZE -colors 2 "$THUMB_OVERLAY_BLACK"
fi fi
} }
export -f makeImages
# Generates overlays for the stated block and updates idnext & idprev # Generates overlays for the stated block and updates idnext & idprev
# altoxml (newlines removed) tag class # altoxml (newlines removed) tag class
...@@ -600,7 +602,6 @@ function makePreviewPage() { ...@@ -600,7 +602,6 @@ function makePreviewPage() {
]"$'\n' ]"$'\n'
fi fi
IHTML=`template "$IHTML" "TILE_SOURCES" "$TILE_SOURCES"` IHTML=`template "$IHTML" "TILE_SOURCES" "$TILE_SOURCES"`
THUMB_LINK=${THUMB_IMAGE##*/}
IHTML=`template "$IHTML" "THUMB" "$THUMB_LINK"` IHTML=`template "$IHTML" "THUMB" "$THUMB_LINK"`
IHTML=`template "$IHTML" "THUMB_WIDTH" "$THUMB_WIDTH"` IHTML=`template "$IHTML" "THUMB_WIDTH" "$THUMB_WIDTH"`
IHTML=`template "$IHTML" "THUMB_HEIGHT" "$THUMB_HEIGHT"` IHTML=`template "$IHTML" "THUMB_HEIGHT" "$THUMB_HEIGHT"`
...@@ -671,7 +672,6 @@ function makeIndex() { ...@@ -671,7 +672,6 @@ function makeIndex() {
# Generate graphics # Generate graphics
# http://stackoverflow.com/questions/11003418/calling-functions-with-xargs-within-a-bash-script # http://stackoverflow.com/questions/11003418/calling-functions-with-xargs-within-a-bash-script
export -f makeImages
echo "$IMAGES" | xargs -n 1 -I'{}' -P $THREADS bash -c 'makeImages "$@"' _ "$SRC_FOLDER" "$DEST_FOLDER" "{}" "$THUMB_IMAGE_SIZE" "$CROP_PERCENT" "$PRESENTATION_SCRIPT" "$TILE" \; echo "$IMAGES" | xargs -n 1 -I'{}' -P $THREADS bash -c 'makeImages "$@"' _ "$SRC_FOLDER" "$DEST_FOLDER" "{}" "$THUMB_IMAGE_SIZE" "$CROP_PERCENT" "$PRESENTATION_SCRIPT" "$TILE" \;
# Generate pages # Generate pages
...@@ -685,7 +685,9 @@ function makeIndex() { ...@@ -685,7 +685,9 @@ function makeIndex() {
local NEXT_IMAGE=`echo "$IMAGES" | grep -A 1 "$I" | tail -n 1 | grep -v "$I"` local NEXT_IMAGE=`echo "$IMAGES" | grep -A 1 "$I" | tail -n 1 | grep -v "$I"`
makePreviewPage $UP $PARENT $SRC_FOLDER $DEST_FOLDER $I "$PREV_IMAGE" "$NEXT_IMAGE" makePreviewPage $UP $PARENT $SRC_FOLDER $DEST_FOLDER $I "$PREV_IMAGE" "$NEXT_IMAGE"
IMAGES_HTML="${IMAGES_HTML}<li><a href=\"$PAGE_LINK\">$BASE</a></li>"$'\n' IMAGES_HTML="${IMAGES_HTML}<li><a href=\"$PAGE_LINK\">$BASE</a></li>"$'\n'
THUMBS_HTML="${THUMBS_HTML}<a class=\"thumblink\" href=\"$PAGE_LINK\"><img class=\"thumbimg\" src=\"${THUMB_LINK}\" alt=\"$BASE\" title=\"$BASE\" width=\"$THUMB_WIDTH\" height=\"$THUMB_HEIGHT\"/></a>"$'\n'
THUMBS_HTML="${THUMBS_HTML}<div class=\"thumb\"><a class=\"thumblink\" href=\"$PAGE_LINK\"><span class=\"thumboverlay\"></span><img class=\"thumbimg\" src=\"${THUMB_LINK}\" alt=\"$BASE\" title=\"$BASE\" width=\"$THUMB_WIDTH\" height=\"$THUMB_HEIGHT\"/></a></div>"$'\n'
# THUMBS_HTML="${THUMBS_HTML}<a class=\"thumblink\" href=\"$PAGE_LINK\"><img class=\"thumbimg\" src=\"${THUMB_LINK}\" alt=\"$BASE\" title=\"$BASE\" width=\"$THUMB_WIDTH\" height=\"$THUMB_HEIGHT\"/></a>"$'\n'
PREV_IMAGE=$I PREV_IMAGE=$I
done done
IMAGES_HTML="${IMAGES_HTML}</ul>"$'\n' IMAGES_HTML="${IMAGES_HTML}</ul>"$'\n'
......
function toggleBlownThumbs() {
if (document.getElementById('toggle_blown_thumbs').checked) {
state = 'block';
} else {
state = 'none';
}
var content = document.getElementsByClassName('thumboverlay');
for (var i = 0 ; i < content.length ; i++) {
content[i].style.display = state;
}
}
function setupThumbOverlays() {
var content = document.getElementsByClassName('thumblink');
for (var i = 0 ; i < content.length ; i++) {
var href = content[i].href;
var span = content[i].getElementsByClassName('thumboverlay')[0];
var img = content[i].getElementsByClassName('thumbimg')[0];
var base = img.src.substr(0, img.src.lastIndexOf('.'));
var base = base.substr(0, base.lastIndexOf('.'));
span.style.width = img.width + "px";
span.style.height = img.height + "px";
span.style.background = "url(" + base + ".black.thumb.png) 100% 100%, url(" + base + ".white.thumb.png) 100% 100%";
document.title = span.style.background;
}
}
window.onload=setupThumbOverlays;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment