raster-images
TypeScript icon, indicating that this package has built-in type declarations

0.1.0 • Public • Published

raster-images

Library for working with bitmaps

Операции с растровой графикой - загрузка из файловых форматов и преобразования между различными пиксельными форматами. На языке TypeScript. Возможно использование как на клиенте (в браузере), так и на сервере (н.р. Node JS).

Вообще для операций с растровыми данными требуется высокая производительность. Поэтому для них желательно использовать графический ускоритель. Ну или хотя бы более подходящий язык программирования - Java или C++. К сожалению, иногда у разработчика просто нет выбора. Ну или экономически не рентабельно усложнять решение для какой-то очень простой задачи. На этот случай может быть полезна данная библиотека.

Основным рабочим объектом является Surface. Это и есть растровое изображение. Название выбрано максимально краткое и без конфликтов с именами встроенных объектов. Например, в браузере уже есть стандартный интерфейс с именем Image. Surface содержит:

  • информацию об изображении (метаданные) - ширина, высота, формат пикселей и дополнительные опциональные переменные.
  • пиксельные данные в виде строк. Единицей растровых данных являются не пиксели, а строки. Потому что интерпретация пиксельных данных сильно зависит от формата пикселей. Например, черно-белое изображение предполагает 8 пикселей в одном байте. А в формате CMYK+Alpha 32 bit один пиксельзанимает 40 байт.

Данная библиотека поддерживает большое количество пиксельных форматов. Для этого служит класс PixelFormat. Формат пикселей зависит от:

  • цветовой модели - RGB, градации серого, палитра (индексная модель), CMYK и другие.
  • количества бит для цветовых компонентов.
  • наличие альфа-канала

Для компактного описания пиксельных форматов используются строковые сигнатуры. В них используется обозначение цветового компонента и количество бит. Например, R8G8B8A8 - это четырехбайтовый пиксель с 4 компонентами: красный, зеленый, синий и альфа. (Такой формат используется в Canvas)

Библиотека raster-images даёт возможность преобразовать растровые данные из одного пиксельного формата в другой. При этом можно регулировать параметры, влияющие на качество и быстродействие. Например, можно использовать размытие (диферинг) для повышения качества преобразования с понижением цветовой глубины.

Другой важной возможностью библиотеки является работа с файловыми форматами.

Существует огромное количество файловых форматов для изображений. Браузер "из коробки" позволяет работать с тремя: JPEG, GIF и PNG. Несомненно, такими возможностями следует пользоваться везде, гдк это возможно. Однако, встроенные функции оперируют только пиксельными данными, игнорируя все метаданные. Хотя например, при работе с фотографиями было бы полезно получать значения выдержки и диафрагмы. Ну или в ряде случаев было бы неплохо использовать пиктограмму, встроенную в JPEG-файл. При помощи raster-images можно получить практически любые метаданные, которые содержит файл.

Ну и если по какой-то причине понадобилось загружать данные из других форматов, то здесь тоже поможет raster-imagesю

Readme

Keywords

Package Sidebar

Install

npm i raster-images

Weekly Downloads

5

Version

0.1.0

License

ISC

Unpacked Size

1.91 MB

Total Files

1146

Last publish

Collaborators

  • peterwin