модуль node.js, который конвертирует многостраничные изображения в формате tiff

Есть ли какой-либо инструмент для преобразования многостраничных файлов tiff в JPG, PNG и т. д.?

Я использовал Sharp, модуль из node.js для преобразования TIFF-изображений в нужные мне форматы. Но кажется, что он не может преобразовать этот единственный файл tiff с несколькими сжатыми страницами (он преобразует только первую страницу)


person weily huang    schedule 10.01.2019    source источник
comment
многостраничный TIFF   -  person lloyd    schedule 10.01.2019


Ответы (2)


Любой модуль node.js будет использовать ImageMagick или GraphicsMagick внизу, поэтому вам нужны эти двоичные файлы на вашем $PATH. Если вы используете OSX, убедитесь, что у вас есть менеджер пакетов brew, а затем запустите:

brew install imagemagick
brew install graphicsmagick

Теперь есть простой модуль node.js tiff-to-png можно установить:

$ npm install tiff-to-png

Затем создайте простой скрипт, как показано ниже:

const ConvertTiff = require('tiff-to-png');
const glob = require('glob');

// cwd option sets the current-working-directory
// that tiff-to-png runs from.
let options = {
  cwd: '/path/to/rootDir/of/tiffs'
};

let location = '/path/to/output/pictures';
let converter = new ConvertTiff(options);

// for Files
let forFiles = (err, files) => {
  if (err) console.log(err);
  converter.convertArray(files, location);
};

// glob it.
glob('**/*.tif', options, forFiles);

Теперь, если ваши многостраничные файлы tif не разбиваются должным образом. После установки библиотек imagemagick и graphicsmagick у вас должны быть две команды: tiffcp и tiffsplit.

Иногда причиной сбоя, который вы видите, является неправильное сжатие. Используйте tiffcp -c none orig.tif fixed.tif для удаления проблемного сжатия. Затем запустите tiffsplit fixed.tif prefixForSplitFile-, и вы должны получить несколько файлов в многостраничном TIFF.

Наконец, для преобразования в форматы, отличные от PNG, и для более сложной обработки изображений с помощью Image/GraphicsMagick с использованием node.js установите gm, который может запускать вышеуказанные команды из node.js.

person adamrights    schedule 10.01.2019