Я имею дело с множеством изображений TIFF, особенно с 1-битным сжатием Group 4. Большинство этих изображений имеют размер Letter и Legal, отсканированные с разрешением от 200 до 300 точек на дюйм, что является довольно стандартным для деловых документов.

Конечно, TIFF не является стандартным форматом изображений для веб-браузеров, поэтому отображение этих изображений в Интернете было проблемой (помните Java <applet>? тьфу!). По моим наблюдениям, PNG на 50% больше, а до того, как PNG получили широкую поддержку, был GIF, более чем в два раза больше. Вы можете увидеть разные размеры, созданные с помощью ImageMagick convert:

$ ls -l
total 2056
-rw-r--r--  1 thad  staff  130262 May  6 15:16 kofax.gif
-rw-r--r--  1 thad  staff  772436 May  6 15:46 kofax.jpg
-rw-r--r--  1 thad  staff   87036 May  6 15:12 kofax.png
-rw-r--r--  1 thad  staff   57222 Apr 30 17:59 kofax.tif

Я был счастлив наткнуться на tiff.js, порт LibTIFF, созданный путем компиляции кода LibTIFF C с помощью Emscripten. (Для меня это решение - не что иное, как гениальность и / или волшебство).

Теперь для отображения изображения. При первом просмотре я хочу уменьшить изображение, чтобы оно поместилось в окне браузера. Однако использование HTML5 Canvas дало мне неровное изображение. Твиттер спешит на помощь! Майлз Элам (@mileselam) объяснил, что я должен увеличить размер моего <canvas> и уменьшить его отображение с помощью настроек стиля. Результатом является плавное представление моего изображения TIFF (показано выше с размером 30%).

Исходный код этой демонстрации можно найти на GitHub.