UNPKG

sharp-bmp

Version:

Bmp encoder and decoder for sharp base on bmp-js.

102 lines (76 loc) 2.06 kB
# sharp-bmp Bmp encoder and decoder for [sharp](https://www.npmjs.com/package/sharp) base on [bmp-js](https://www.npmjs.com/package/bmp-js). ## Install ```bash npm install sharp-bmp ``` ## Usage ### Create an instance of sharp from a BMP image ```js const bmp = require("sharp-bmp"); bmp.sharpFromBmp("input.bmp", { // sharp constructor options }) // returns an instance of sharp .toFile("output.png"); ``` ### Write output image data to a BMP file ```js const sharp = require("sharp"); const bmp = require("sharp-bmp"); const image = sharp("input.jpg"); bmp.sharpToBmp(image, "output.bmp") .then((info) => { console.log(info); // { size, width, height } }) .catch((err) => { console.error(err); }); ``` ### Decode BMP ```js const fs = require("fs"); const sharp = require("sharp"); const bmp = require("sharp-bmp"); const buffer = fs.readFileSync("input.bmp"); const bitmap = bmp.decode(buffer); sharp(bitmap.data, { raw: { width: bitmap.width, height: bitmap.height, channels: 4, }, }) .toFile("output.png"); ``` ### Encode BMP ```js const fs = require("fs"); const sharp = require("sharp"); const bmp = require("sharp-bmp"); (async () => { const image = sharp("input.jpg"); const { data, info } = await image // If the image has alpha transparency channel .flatten({ background: "#ffffff" }) // If the image has no alpha transparency channel .ensureAlpha() .raw() .toBuffer({ resolveWithObject: true }); const bitmap = { data, width: info.width, height: info.height, }; const rawData = bmp.encode(bitmap); fs.writeFileSync("output.bmp", rawData.data); console.log(rawData.data.length); // size of output.bmp })(); ``` ## Change Log ### 0.1.3 - Merge alpha transparency channel with a white background ### 0.1.4 - `sharpFromBmp(input, options)` support `Buffer` input. ### 0.1.5 - `sharpFromBmp(input, options, resolveWithObject)` add the third option, if `true`, will return an object with decoding info, default by `false` - Update index.d.ts