diff --git a/extra/js/drive.js b/extra/js/drive.js index 43e571e..4f2a546 100644 --- a/extra/js/drive.js +++ b/extra/js/drive.js @@ -74,19 +74,28 @@ window.loadFileAsync = function(fullPath, bitmap, callback) { generationCanvas.width = sm[0]; generationCanvas.height = sm[1]; - // Create dummy from data uri - FS.createPreloadedFile(path, filename, generationCanvas.toDataURL(), true, true, function() { - // Return control to C++ - callback(); callback = () => {}; + // Draw + var img = new Image; + img.onload = function(){ + const ctx = generationCanvas.getContext('2d'); + ctx.drawImage(img, 0, 0, sm[0], sm[1]); - // Lazy load and refresh - load(() => { - const reloadBitmap = Module.cwrap('reloadBitmap', 'number', ['number']) - reloadBitmap(bitmap); + // Create dummy from data uri + FS.createPreloadedFile(path, filename, generationCanvas.toDataURL(), true, true, function() { + // Return control to C++ + callback(); callback = () => {}; + + // Lazy load and refresh + load(() => { + const reloadBitmap = Module.cwrap('reloadBitmap', 'number', ['number']) + reloadBitmap(bitmap); + }); + }, console.error, false, false, () => { + try { FS.unlink(path + "/" + filename); } catch (err) {} }); - }, console.error, false, false, () => { - try { FS.unlink(path + "/" + filename); } catch (err) {} - }); + }; + + img.src = sm[2]; } else { if (bitmap) { console.warn('No sizemap for image', mappingKey); diff --git a/extra/make_mapping.sh b/extra/make_mapping.sh index 5ed3acc..f929c6a 100755 --- a/extra/make_mapping.sh +++ b/extra/make_mapping.sh @@ -22,7 +22,13 @@ if [ -f $file ] then sz=`identify -format "%w,%h" "${file}" 2>/dev/null` if [ $? -eq 0 ]; then - echo "\"$fl\": [${sz}]," >> bitmap-map.js + convert "$file" -resize 64x64\> "conv.png" + mimetype=$(file -bN --mime-type "conv.png") + content=$(base64 -w0 < "conv.png") + duri="data:$mimetype;base64,$content" + rm "conv.png" + + echo "\"$fl\": [${sz},\"${duri}\"]," >> bitmap-map.js fi fi