{"_id":"@aitjcize/epaper-image-convert","_rev":"20-3202c270a93b05e34edba00a851b88fe","name":"@aitjcize/epaper-image-convert","dist-tags":{"latest":"0.1.20"},"versions":{"0.1.0":{"name":"@aitjcize/epaper-image-convert","version":"0.1.0","keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","_id":"@aitjcize/epaper-image-convert@0.1.0","maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"homepage":"https://github.com/aitjcize/epaper-image-convert#readme","bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"bin":{"epaper-image-convert":"src/cli.js"},"dist":{"shasum":"5533f6afbfdf3168636533f8b9e68794d19346da","tarball":"https://registry.npmjs.org/@aitjcize/epaper-image-convert/-/epaper-image-convert-0.1.0.tgz","fileCount":7,"integrity":"sha512-480d0HjxB9QCh4o6ZvhdgS3PKvI8o3UHBvaU/Mt9yLNg0G+LBa55bCiWUQqOisIzm0otpCL2Q9kmdajkBbdjjQ==","signatures":[{"sig":"MEYCIQCzZke33KME8aN+r/M3tgINCvJJWyKYklxtkl0Uu/eWtQIhAPokwkZ3bi43dmqVBAoy/X/TtIUhMQFz1w6rvpAwyABk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65419},"main":"./src/index.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./presets":"./src/presets.js","./palettes":"./src/palettes.js"},"gitHead":"6fcb25ebb356288296ea12abe4b5f81f351c2a9f","scripts":{"lint":"eslint src/","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","format":"prettier --write src/","format:check":"prettier --check src/"},"_npmUser":{"name":"aitjcize","email":"aitjcize@gmail.com"},"repository":{"url":"git+https://github.com/aitjcize/epaper-image-convert.git","type":"git"},"_npmVersion":"11.5.1","description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","directories":{},"_nodeVersion":"22.17.1","dependencies":{"canvas":"^2.11.2","commander":"^12.0.0","exifreader":"^4.14.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.2.5","@eslint/js":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/epaper-image-convert_0.1.0_1769512447915_0.07598183648236545","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aitjcize/epaper-image-convert","version":"0.1.1","keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","_id":"@aitjcize/epaper-image-convert@0.1.1","maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"homepage":"https://github.com/aitjcize/epaper-image-convert#readme","bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"bin":{"epaper-image-convert":"src/cli.js"},"dist":{"shasum":"75d000a365166a4cbe627756d96e810cd7b0d0db","tarball":"https://registry.npmjs.org/@aitjcize/epaper-image-convert/-/epaper-image-convert-0.1.1.tgz","fileCount":7,"integrity":"sha512-ZLM6g+Zc+A59kFDUS/FFJNuiLGDNoyt3wVLD4BcSH1fikI8wB0SyGarH1rjfpySTYZiUjfygJ5W9jZcYU6vGoA==","signatures":[{"sig":"MEUCIA1fqkPIGmh7tH1HTqyiOjAiISUwnkcerf0MpsZpNHmcAiEAp9msxSri4XMYemwxaAwWEUwzf3JI3/RJHBeUWNzK/io=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65580},"main":"./src/index.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./presets":"./src/presets.js","./palettes":"./src/palettes.js"},"gitHead":"9545686c4cd33f32ef25790bce1fdacda76a3297","scripts":{"lint":"eslint src/","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","format":"prettier --write src/","format:check":"prettier --check src/"},"_npmUser":{"name":"aitjcize","email":"aitjcize@gmail.com"},"repository":{"url":"git+https://github.com/aitjcize/epaper-image-convert.git","type":"git"},"_npmVersion":"11.5.1","description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","directories":{},"_nodeVersion":"22.17.1","dependencies":{"canvas":"^2.11.2","commander":"^12.0.0","exifreader":"^4.14.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.2.5","@eslint/js":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/epaper-image-convert_0.1.1_1769512854326_0.8493881447484981","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@aitjcize/epaper-image-convert","version":"0.1.2","keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","_id":"@aitjcize/epaper-image-convert@0.1.2","maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"homepage":"https://github.com/aitjcize/epaper-image-convert#readme","bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"bin":{"epaper-image-convert":"src/cli.js"},"dist":{"shasum":"5edc294aa6399bed9164a50cae49fbaeba17e0d8","tarball":"https://registry.npmjs.org/@aitjcize/epaper-image-convert/-/epaper-image-convert-0.1.2.tgz","fileCount":7,"integrity":"sha512-yCV6VEMxKhiVH7WapqcSTNuVBZvLq7qGAbVYpYV009ZyzOW7fzY4wdenqfLWd0khnOI13CAWn+1KuEkCBUXElw==","signatures":[{"sig":"MEQCIDtVzqE8A1zP/x9C9EoCee5u1emmd7ZOSpEbAVif/BKxAiANwAdeeJYRS9Hy3d9M2yamVFEFKoj++JGqOO/dn+DrgA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65678},"main":"./src/index.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./presets":"./src/presets.js","./palettes":"./src/palettes.js"},"gitHead":"f007ade31fce52bd63e1a58ecee5da203e62583a","scripts":{"lint":"eslint src/","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","format":"prettier --write src/","format:check":"prettier --check src/"},"_npmUser":{"name":"aitjcize","email":"aitjcize@gmail.com"},"repository":{"url":"git+https://github.com/aitjcize/epaper-image-convert.git","type":"git"},"_npmVersion":"11.5.1","description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","directories":{},"_nodeVersion":"22.17.1","dependencies":{"canvas":"^3.2.1","commander":"^14.0.2","exifreader":"^4.14.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.2.5","@eslint/js":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/epaper-image-convert_0.1.2_1769517365557_0.24054555685693546","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@aitjcize/epaper-image-convert","version":"0.1.3","keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","_id":"@aitjcize/epaper-image-convert@0.1.3","maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"homepage":"https://github.com/aitjcize/epaper-image-convert#readme","bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"bin":{"epaper-image-convert":"src/cli.js"},"dist":{"shasum":"485630bfa5ce0631a6a079392d1a66a72fb243b2","tarball":"https://registry.npmjs.org/@aitjcize/epaper-image-convert/-/epaper-image-convert-0.1.3.tgz","fileCount":7,"integrity":"sha512-GpqQMQjp5D6t3uhMJjUefbhHENG9X1bEBI70vjQlESpduwNE68mvzJdDBbsk57In1RmVM2L7l3rojuYGCMVf8w==","signatures":[{"sig":"MEUCIAGQFITIHELaZ5ZBcXGIfFA6Mluv/HNLrEhYpZrgVf+vAiEAgbNrhgqefuOEVbK7Q+8muONDOqKZIIZG/vwxIxXn8VQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66017},"main":"./src/index.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./presets":"./src/presets.js","./palettes":"./src/palettes.js"},"gitHead":"2b35c3a6eb376c99244b03c800923d2c9366d173","scripts":{"lint":"eslint src/","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","format":"prettier --write src/","format:check":"prettier --check src/"},"_npmUser":{"name":"aitjcize","email":"aitjcize@gmail.com"},"repository":{"url":"git+https://github.com/aitjcize/epaper-image-convert.git","type":"git"},"_npmVersion":"11.5.1","description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","directories":{},"_nodeVersion":"22.17.1","dependencies":{"canvas":"^3.2.1","commander":"^14.0.2","exifreader":"^4.14.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.2.5","@eslint/js":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/epaper-image-convert_0.1.3_1769533102773_0.030487455085190796","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@aitjcize/epaper-image-convert","version":"0.1.4","keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","_id":"@aitjcize/epaper-image-convert@0.1.4","maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"homepage":"https://github.com/aitjcize/epaper-image-convert#readme","bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"bin":{"epaper-image-convert":"src/cli.js"},"dist":{"shasum":"9e19332bdccaa9fef4cad56670734f6f9581f3db","tarball":"https://registry.npmjs.org/@aitjcize/epaper-image-convert/-/epaper-image-convert-0.1.4.tgz","fileCount":7,"integrity":"sha512-ufnurz+AVyn4j0eOXoeaB46sMEtZl6+Q8wglghxfpno0bVenrCck2TPfnEQJFSmDvUvs9aOzCehjsSEAPDmaNg==","signatures":[{"sig":"MEYCIQDyneVA3NukEK+HoibkmE/n2dopY3sQg+CdgUWP+X31RgIhAK4Jm536+fb5kJRgb67aXrDeFX5yBGlFq9LeUNI/FurA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66029},"main":"./src/index.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./presets":"./src/presets.js","./palettes":"./src/palettes.js"},"gitHead":"65161a26cc85d7ad69f482f27413bfe3f8a439b4","scripts":{"lint":"eslint src/","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","format":"prettier --write src/","format:check":"prettier --check src/"},"_npmUser":{"name":"aitjcize","email":"aitjcize@gmail.com"},"repository":{"url":"git+https://github.com/aitjcize/epaper-image-convert.git","type":"git"},"_npmVersion":"11.5.1","description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","directories":{},"_nodeVersion":"22.17.1","dependencies":{"canvas":"^3.2.1","commander":"^14.0.2","exifreader":"^4.14.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.2.5","@eslint/js":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/epaper-image-convert_0.1.4_1769535476269_0.4599968330364792","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@aitjcize/epaper-image-convert","version":"0.1.5","keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","_id":"@aitjcize/epaper-image-convert@0.1.5","maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"homepage":"https://github.com/aitjcize/epaper-image-convert#readme","bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"bin":{"epaper-image-convert":"src/cli.js"},"dist":{"shasum":"ec43bdb62cda6b557d73cf2232fd9423f6fcf5c5","tarball":"https://registry.npmjs.org/@aitjcize/epaper-image-convert/-/epaper-image-convert-0.1.5.tgz","fileCount":7,"integrity":"sha512-hcc790hGYl7lVM2YkhUDfovV/D2cKZtFH4O9PTP9T+dOnyEjon9G1WRIFKTSq8YfS5FJArlhCL7p7Dgf3chF+Q==","signatures":[{"sig":"MEUCIFsYonO8UhBw0BY4m86KCCV0fkXUVjgCUI5Zv9XvjASXAiEA4RjaTWEC2gbM8BmvaNY/3/kdR9lvyeOKDvDZjm6DKS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67593},"main":"./src/index.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./presets":"./src/presets.js","./palettes":"./src/palettes.js"},"gitHead":"8583c4c413d8afc55e54ada3d81e9ddfd950f6ad","scripts":{"lint":"eslint src/","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","format":"prettier --write src/","format:check":"prettier --check src/"},"_npmUser":{"name":"aitjcize","email":"aitjcize@gmail.com"},"repository":{"url":"git+https://github.com/aitjcize/epaper-image-convert.git","type":"git"},"_npmVersion":"11.5.1","description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","directories":{},"_nodeVersion":"22.17.1","dependencies":{"canvas":"^3.2.1","commander":"^14.0.2","exifreader":"^4.14.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.2.5","@eslint/js":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/epaper-image-convert_0.1.5_1769538065212_0.05194468982119149","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@aitjcize/epaper-image-convert","version":"0.1.6","keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","_id":"@aitjcize/epaper-image-convert@0.1.6","maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"homepage":"https://github.com/aitjcize/epaper-image-convert#readme","bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"bin":{"epaper-image-convert":"src/cli.js"},"dist":{"shasum":"77ce6901eb87ff635e13aa3b537c71a4d51c8db4","tarball":"https://registry.npmjs.org/@aitjcize/epaper-image-convert/-/epaper-image-convert-0.1.6.tgz","fileCount":7,"integrity":"sha512-Ihkkn8Cxe5UTmrLLlIQs2WRGMC9zcOb4j0iz4CKHXFK/uAKoj+gYVA8T56G7JBcA5kOvdfLT/s5uwbbJOIlSlQ==","signatures":[{"sig":"MEYCIQCQMXZixR5Wv8akM5x8ZZeJMXBXXON0Bk9cCSysZg/PzgIhAPlsBEr9miviukr4ZPJ2qdurlUco1HaSJf6TJfH/bfdQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67958},"main":"./src/index.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./presets":"./src/presets.js","./palettes":"./src/palettes.js"},"gitHead":"b89a3175b9c0a678cd063424f1815c6c7e09c1e4","scripts":{"lint":"eslint src/","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","format":"prettier --write src/","format:check":"prettier --check src/"},"_npmUser":{"name":"aitjcize","email":"aitjcize@gmail.com"},"repository":{"url":"git+https://github.com/aitjcize/epaper-image-convert.git","type":"git"},"_npmVersion":"11.5.1","description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","directories":{},"_nodeVersion":"22.17.1","dependencies":{"canvas":"^3.2.1","commander":"^14.0.2","exifreader":"^4.14.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.2.5","@eslint/js":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/epaper-image-convert_0.1.6_1769678883534_0.27658610560976005","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@aitjcize/epaper-image-convert","version":"0.1.7","keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","_id":"@aitjcize/epaper-image-convert@0.1.7","maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"homepage":"https://github.com/aitjcize/epaper-image-convert#readme","bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"bin":{"epaper-image-convert":"src/cli.js"},"dist":{"shasum":"293449afcaa4c4e99adc0c12f80b1adc41f3a0e5","tarball":"https://registry.npmjs.org/@aitjcize/epaper-image-convert/-/epaper-image-convert-0.1.7.tgz","fileCount":7,"integrity":"sha512-SC7n8c0lprUqXC6ongNqzyWRYEPyG1zfl1HP4Jsdgr2aaklW75levHiktTEeUEzKPSJmJNMnr7krFw3cLqmteA==","signatures":[{"sig":"MEYCIQDFA/RaLPeFz0uFMNOZqH+l1mkaL3OMoHliWe0WiiOpJAIhAKMAa57/YMNSEf0ufLWV3/EiuKQDCA2tov/5ho8P1UGI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67963},"main":"./src/index.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./presets":"./src/presets.js","./palettes":"./src/palettes.js"},"gitHead":"da494b86760e7dd3df46a4ebe4ece2646f7efe6b","scripts":{"lint":"eslint src/","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","format":"prettier --write src/","format:check":"prettier --check src/"},"_npmUser":{"name":"aitjcize","email":"aitjcize@gmail.com"},"repository":{"url":"git+https://github.com/aitjcize/epaper-image-convert.git","type":"git"},"_npmVersion":"11.5.1","description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","directories":{},"_nodeVersion":"22.17.1","dependencies":{"canvas":"^3.2.1","commander":"^14.0.2","exifreader":"^4.14.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.2.5","@eslint/js":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/epaper-image-convert_0.1.7_1769714337365_0.3233798139376174","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@aitjcize/epaper-image-convert","version":"0.1.8","keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","_id":"@aitjcize/epaper-image-convert@0.1.8","maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"homepage":"https://github.com/aitjcize/epaper-image-convert#readme","bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"bin":{"epaper-image-convert":"src/cli.js"},"dist":{"shasum":"7ea4d2cfc2e145736018fe58e0eb2477ae8de7cc","tarball":"https://registry.npmjs.org/@aitjcize/epaper-image-convert/-/epaper-image-convert-0.1.8.tgz","fileCount":7,"integrity":"sha512-00Eu7Wq1SiOn846G68DykPLm3EKWDMYwUlY/v2L20aNtuBPYa4r9399OVibYbiIx652ONz2Sl5yMP2hot+CWTg==","signatures":[{"sig":"MEUCIQDTdDIBbKeL7OLKNlV/RrLedL8dlMK0W+CLI/uGXRAjgAIgTUJ//1Wk/pf3fJ6etVmy/4rUuTT1TVhHEGNBHAI7ZS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67958},"main":"./src/index.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./presets":"./src/presets.js","./palettes":"./src/palettes.js"},"gitHead":"2d0a114f27e1f831880a713a08828c17def6f367","scripts":{"lint":"eslint src/","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","format":"prettier --write src/","format:check":"prettier --check src/"},"_npmUser":{"name":"aitjcize","email":"aitjcize@gmail.com"},"repository":{"url":"git+https://github.com/aitjcize/epaper-image-convert.git","type":"git"},"_npmVersion":"11.5.1","description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","directories":{},"_nodeVersion":"22.17.1","dependencies":{"canvas":"^3.2.1","commander":"^14.0.2","exifreader":"^4.14.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.2.5","@eslint/js":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/epaper-image-convert_0.1.8_1769862198613_0.008524852440150887","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@aitjcize/epaper-image-convert","version":"0.1.9","keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","_id":"@aitjcize/epaper-image-convert@0.1.9","maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"homepage":"https://github.com/aitjcize/epaper-image-convert#readme","bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"bin":{"epaper-image-convert":"src/cli.js"},"dist":{"shasum":"4dfd4b28d7889f417140966e2b62187f7b678311","tarball":"https://registry.npmjs.org/@aitjcize/epaper-image-convert/-/epaper-image-convert-0.1.9.tgz","fileCount":8,"integrity":"sha512-3YdUF44UX7K4gJoB5kkdhBtKm/rS8n560vvy/8TbWcdifO1a9kG3NAUWSznZhTPkRtVUdObJyXWm6sz3MWQK8Q==","signatures":[{"sig":"MEUCIDDNCwKV07BgJyeB0BHyRDfM5kdFbhG1eHSZI2KGzFiAAiEA14C/wRCsusC7ku6nfZUyxi4a+zkNGk6SAAiqNL5kxKI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69280},"main":"./src/index.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./presets":"./src/presets.js","./palettes":"./src/palettes.js"},"gitHead":"97450f51626caa0b053be06eaa5ce2a975d312e9","scripts":{"lint":"eslint src/","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","format":"prettier --write src/","format:check":"prettier --check src/"},"_npmUser":{"name":"aitjcize","email":"aitjcize@gmail.com"},"repository":{"url":"git+https://github.com/aitjcize/epaper-image-convert.git","type":"git"},"_npmVersion":"11.5.1","description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","directories":{},"_nodeVersion":"22.17.1","dependencies":{"canvas":"3.2.1","commander":"^14.0.2","exifreader":"^4.14.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.2.5","@eslint/js":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/epaper-image-convert_0.1.9_1774754748981_0.28138875505029537","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@aitjcize/epaper-image-convert","version":"0.1.10","keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","_id":"@aitjcize/epaper-image-convert@0.1.10","maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"homepage":"https://github.com/aitjcize/epaper-image-convert#readme","bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"bin":{"epaper-image-convert":"src/cli.js"},"dist":{"shasum":"d0ef84235760ec67c5a9097a6a3852670403140f","tarball":"https://registry.npmjs.org/@aitjcize/epaper-image-convert/-/epaper-image-convert-0.1.10.tgz","fileCount":8,"integrity":"sha512-ht59yYFVpBsqgFlg8nEk2SjtVrGEtSjpY9GQ/j4cSscP/4WHIK8cgDI2XNkQ/z6/+Y0hYx391lhpTelGxXT/Og==","signatures":[{"sig":"MEUCIG00uRUPZ3ESE6sTQf3NVfNfBQ23AGfYsCp69GFQpV8bAiEAnRfeh9yiNwIL140J/ydYpy7d34kJTe8daXUWLkEiSTA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71840},"main":"./src/index.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./presets":"./src/presets.js","./palettes":"./src/palettes.js"},"gitHead":"4781128c8e549d7afc5b8f4f6049735bf779cda4","scripts":{"lint":"eslint src/","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","format":"prettier --write src/","format:check":"prettier --check src/"},"_npmUser":{"name":"aitjcize","email":"aitjcize@gmail.com"},"repository":{"url":"git+https://github.com/aitjcize/epaper-image-convert.git","type":"git"},"_npmVersion":"11.5.1","description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","directories":{},"_nodeVersion":"22.17.1","dependencies":{"canvas":"3.2.1","commander":"^14.0.2","exifreader":"^4.14.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.2.5","@eslint/js":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/epaper-image-convert_0.1.10_1775459716208_0.30255475985359115","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@aitjcize/epaper-image-convert","version":"0.1.11","keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","_id":"@aitjcize/epaper-image-convert@0.1.11","maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"homepage":"https://github.com/aitjcize/epaper-image-convert#readme","bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"bin":{"epaper-image-convert":"src/cli.js"},"dist":{"shasum":"b7a478e7d1257910e21c3bfa343527c0fc7c325b","tarball":"https://registry.npmjs.org/@aitjcize/epaper-image-convert/-/epaper-image-convert-0.1.11.tgz","fileCount":8,"integrity":"sha512-fY4AT7emtpWkKFdeSpdzalRWkOCAgVbN11MuYMMsZRWTV5Qx0sipZ0u9dnroE0wIwBGhiQy8FaaPi/t76H4AJg==","signatures":[{"sig":"MEQCICwGA+upU7km4U6onJ5dOA5fN3/bWHV+gAksKVQWkhQeAiB9X9/sSCkVlMHzDpV5X993HI5oj/Odgz7vF4Dk1BBjtw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71854},"main":"./src/index.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./presets":"./src/presets.js","./palettes":"./src/palettes.js"},"gitHead":"d04898b321a6762eb53d45aee761b4771ce5466c","scripts":{"lint":"eslint src/","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","format":"prettier --write src/","format:check":"prettier --check src/"},"_npmUser":{"name":"aitjcize","email":"aitjcize@gmail.com"},"repository":{"url":"git+https://github.com/aitjcize/epaper-image-convert.git","type":"git"},"_npmVersion":"11.5.1","description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","directories":{},"_nodeVersion":"22.17.1","dependencies":{"canvas":"3.2.1","commander":"^14.0.2","exifreader":"^4.14.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.2.5","@eslint/js":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/epaper-image-convert_0.1.11_1775460013332_0.7123589473012755","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@aitjcize/epaper-image-convert","version":"0.1.12","keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","_id":"@aitjcize/epaper-image-convert@0.1.12","maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"homepage":"https://github.com/aitjcize/epaper-image-convert#readme","bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"bin":{"epaper-image-convert":"src/cli.js"},"dist":{"shasum":"8fb56b05e832c3af8803c2ec9116bce0381dbd97","tarball":"https://registry.npmjs.org/@aitjcize/epaper-image-convert/-/epaper-image-convert-0.1.12.tgz","fileCount":8,"integrity":"sha512-I8+GJpdzz+nuTKzeWzfHepylAHRQgPx84vmKru2sr58cEeQYFFoGZ1v8+2Q09CoSU8nKaIAwooU5QcSJurT/9w==","signatures":[{"sig":"MEYCIQCILpjk/W9U0+gJZV3/wz4hhbtO3etSG1Kw2Ly0GolbkgIhAJxju6uGP9cMUwvzIQc/eZr5Aj1UHPBbtk0fFKkNiqb7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71710},"main":"./src/index.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./presets":"./src/presets.js","./palettes":"./src/palettes.js"},"gitHead":"96749d484b9641f7a1e0fe78884d0b5631d0e73a","scripts":{"lint":"eslint src/","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","format":"prettier --write src/","format:check":"prettier --check src/"},"_npmUser":{"name":"aitjcize","email":"aitjcize@gmail.com"},"repository":{"url":"git+https://github.com/aitjcize/epaper-image-convert.git","type":"git"},"_npmVersion":"11.5.1","description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","directories":{},"_nodeVersion":"22.17.1","dependencies":{"canvas":"3.2.1","commander":"^14.0.2","exifreader":"^4.14.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.2.5","@eslint/js":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/epaper-image-convert_0.1.12_1775786039407_0.6243974584869185","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@aitjcize/epaper-image-convert","version":"0.1.13","keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","_id":"@aitjcize/epaper-image-convert@0.1.13","maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"homepage":"https://github.com/aitjcize/epaper-image-convert#readme","bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"bin":{"epaper-image-convert":"src/cli.js"},"dist":{"shasum":"0e13fd871a5738da4d8c0094cdcfb8e24380e947","tarball":"https://registry.npmjs.org/@aitjcize/epaper-image-convert/-/epaper-image-convert-0.1.13.tgz","fileCount":8,"integrity":"sha512-qFiswUdNtkUJLLKFEB7ot8mNUesGjHKBagw+TvA+TNe3eMeebPyR27MJSgnSzRjqKbO9c12CvLq/Al8Mll8hSg==","signatures":[{"sig":"MEYCIQCb577r1iQHWjuPNIv3Zgoe5jefDI1I9AY5tHVqpAJhYwIhAKUz/nWkbNiBpvzhlyoyEjuyVozREcMOR34csjBCW8Om","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77708},"main":"./src/index.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./presets":"./src/presets.js","./palettes":"./src/palettes.js"},"gitHead":"da7fbf46062a5d2dcc0a6b230e98e0e5d7e8f6b4","scripts":{"lint":"eslint src/","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","format":"prettier --write src/","format:check":"prettier --check src/"},"_npmUser":{"name":"aitjcize","email":"aitjcize@gmail.com"},"repository":{"url":"git+https://github.com/aitjcize/epaper-image-convert.git","type":"git"},"_npmVersion":"11.5.1","description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","directories":{},"_nodeVersion":"22.17.1","dependencies":{"canvas":"3.2.1","commander":"^14.0.2","exifreader":"^4.14.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.2.5","@eslint/js":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/epaper-image-convert_0.1.13_1775804012294_0.5238859431811265","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@aitjcize/epaper-image-convert","version":"0.1.14","keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","_id":"@aitjcize/epaper-image-convert@0.1.14","maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"homepage":"https://github.com/aitjcize/epaper-image-convert#readme","bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"bin":{"epaper-image-convert":"src/cli.js"},"dist":{"shasum":"5f41e3a8c761179ab1ce093d71090368d5d221cf","tarball":"https://registry.npmjs.org/@aitjcize/epaper-image-convert/-/epaper-image-convert-0.1.14.tgz","fileCount":8,"integrity":"sha512-7XSbUXPvYFAqTDOh+FBcvL9434YFvZIZPc5MbqgFA60EIMJC39LM4XewjUTa0JGWSBhOANlo2qlxZu3iaXKRhg==","signatures":[{"sig":"MEYCIQDUUxxdl0sbznSMD3GOLtkhg7b5Kdy8nWdFHQXOamoVJgIhAPpK2FkPl29MSjtlmiHtsh+aP5I6NOOei6Yz0okj8OIy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79195},"main":"./src/index.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./presets":"./src/presets.js","./palettes":"./src/palettes.js"},"gitHead":"c4c221e20f9e157d8b2280c9f74c822d0b72e7c5","scripts":{"lint":"eslint src/","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","format":"prettier --write src/","format:check":"prettier --check src/"},"_npmUser":{"name":"aitjcize","email":"aitjcize@gmail.com"},"repository":{"url":"git+https://github.com/aitjcize/epaper-image-convert.git","type":"git"},"_npmVersion":"11.5.1","description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","directories":{},"_nodeVersion":"22.17.1","dependencies":{"canvas":"3.2.1","commander":"^14.0.2","exifreader":"^4.14.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.2.5","@eslint/js":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/epaper-image-convert_0.1.14_1775811935571_0.1628473454353787","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@aitjcize/epaper-image-convert","version":"0.1.15","keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","_id":"@aitjcize/epaper-image-convert@0.1.15","maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"homepage":"https://github.com/aitjcize/epaper-image-convert#readme","bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"bin":{"epaper-image-convert":"src/cli.js"},"dist":{"shasum":"e3e6aeaca27dcdafb917e39d4a607d3ca8f62b7d","tarball":"https://registry.npmjs.org/@aitjcize/epaper-image-convert/-/epaper-image-convert-0.1.15.tgz","fileCount":8,"integrity":"sha512-N7E2dEhCVmCjKPNZhd9sUDaSifcfCKSJyANuWtcy7xI5PRaLUtFNbfAaAjT3quoo8WYZskoI8QkwqwSaVndNvQ==","signatures":[{"sig":"MEUCIHc3K7exO97bEQQxCJKsQKgCYKx1pk0DN2EFEK/h9vHTAiEAsCgIqMnBR0x9nZtb56y301AiUxCaL6fwxrUG0/hFRtE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79702},"main":"./src/index.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./presets":"./src/presets.js","./palettes":"./src/palettes.js"},"gitHead":"9bb77c46fe6e84b6a64971aa4f287961699c2c38","scripts":{"lint":"eslint src/","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","format":"prettier --write src/","format:check":"prettier --check src/"},"_npmUser":{"name":"aitjcize","email":"aitjcize@gmail.com"},"repository":{"url":"git+https://github.com/aitjcize/epaper-image-convert.git","type":"git"},"_npmVersion":"11.5.1","description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","directories":{},"_nodeVersion":"22.17.1","dependencies":{"canvas":"3.2.1","commander":"^14.0.2","exifreader":"^4.14.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.2.5","@eslint/js":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/epaper-image-convert_0.1.15_1777038971024_0.29713591824366703","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@aitjcize/epaper-image-convert","version":"0.1.17","keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","_id":"@aitjcize/epaper-image-convert@0.1.17","maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"homepage":"https://github.com/aitjcize/epaper-image-convert#readme","bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"bin":{"epaper-image-convert":"src/cli.js"},"dist":{"shasum":"4cff98ff38b76180fb2a672de4f67c9f532a0b4b","tarball":"https://registry.npmjs.org/@aitjcize/epaper-image-convert/-/epaper-image-convert-0.1.17.tgz","fileCount":8,"integrity":"sha512-godqX3sN6Jhg8SjFuQA+/VkQr8f9FD1QY8NGZ/ECeTOln4RKnWf4DIVAk+xUOwAygXAYNbafkyWwQhloAnzL7Q==","signatures":[{"sig":"MEYCIQDIwbgkfWA8inWzUQpC5ef6rPAjQ3nCjuBlRuHNN+kneQIhAPi070pkc0HqJ/Gf4cp7vtLlqQ7iUTxykpoBmKmX4qob","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83982},"main":"./src/index.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./presets":"./src/presets.js","./palettes":"./src/palettes.js"},"gitHead":"584ce28d7a1b5cc982294889137c1a8680c41a21","scripts":{"lint":"eslint src/","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","format":"prettier --write src/","format:check":"prettier --check src/"},"_npmUser":{"name":"aitjcize","email":"aitjcize@gmail.com"},"repository":{"url":"git+https://github.com/aitjcize/epaper-image-convert.git","type":"git"},"_npmVersion":"11.5.1","description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","directories":{},"_nodeVersion":"22.17.1","dependencies":{"canvas":"3.2.1","commander":"^14.0.2","exifreader":"^4.14.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.2.5","@eslint/js":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/epaper-image-convert_0.1.17_1782747266414_0.3607395222462497","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@aitjcize/epaper-image-convert","version":"0.1.18","keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","_id":"@aitjcize/epaper-image-convert@0.1.18","maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"homepage":"https://github.com/aitjcize/epaper-image-convert#readme","bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"bin":{"epaper-image-convert":"src/cli.js"},"dist":{"shasum":"34e633188479dfc80c0b2c17ef4d8863b697941f","tarball":"https://registry.npmjs.org/@aitjcize/epaper-image-convert/-/epaper-image-convert-0.1.18.tgz","fileCount":8,"integrity":"sha512-SvTpEn1rzz0ZGyiYtSqhh/2985S8jD4VN1bvENbAxBHpgB3krcK7QwBtdBnrO0vkKT1mQNXw99Zvw0c8HFdr0g==","signatures":[{"sig":"MEYCIQDcrjTpRwgVyQ9szgcFhNOsHINNjRAL8Az7ICZIOCZnsQIhAML2PHOHd7BcNTKwJjrXMKq474+KuWmrVWQltQ4/gUOt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89466},"main":"./src/index.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./presets":"./src/presets.js","./palettes":"./src/palettes.js"},"gitHead":"281df6405bf44d531ed16fd5bbebafd5beb04d1d","scripts":{"lint":"eslint src/","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","format":"prettier --write src/","format:check":"prettier --check src/"},"_npmUser":{"name":"aitjcize","email":"aitjcize@gmail.com"},"repository":{"url":"git+https://github.com/aitjcize/epaper-image-convert.git","type":"git"},"_npmVersion":"11.5.1","description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","directories":{},"_nodeVersion":"22.17.1","dependencies":{"canvas":"3.2.1","commander":"^14.0.2","exifreader":"^4.14.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.2.5","@eslint/js":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/epaper-image-convert_0.1.18_1782795124164_0.02698722386182828","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"@aitjcize/epaper-image-convert","version":"0.1.19","keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","_id":"@aitjcize/epaper-image-convert@0.1.19","maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"homepage":"https://github.com/aitjcize/epaper-image-convert#readme","bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"bin":{"epaper-image-convert":"src/cli.js"},"dist":{"shasum":"308998dc99f82b22a5e43b027d03db79d3cb3069","tarball":"https://registry.npmjs.org/@aitjcize/epaper-image-convert/-/epaper-image-convert-0.1.19.tgz","fileCount":8,"integrity":"sha512-XtUTzWYC7bjmHRYfeVfrCIvmq7DGzKe8msDXNch6aRLbEux84gMvkQdt2aNVsPcDVqH7ejQtw6+7XKOMCgJIPQ==","signatures":[{"sig":"MEYCIQCmGXy2ZBm4wr6jhjCFDnM7s7cTLgpN2StIOiNyr8HRIwIhAI3R7Aa5PAUqTllxYi+R8Esw14j3qFMkLzEPkkmMRezZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88728},"main":"./src/index.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./src/index.js","./presets":"./src/presets.js","./palettes":"./src/palettes.js"},"gitHead":"efe1e06f544d7d088932f099b84a50ef2cf81a84","scripts":{"lint":"eslint src/","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","format":"prettier --write src/","format:check":"prettier --check src/"},"_npmUser":{"name":"aitjcize","email":"aitjcize@gmail.com"},"repository":{"url":"git+https://github.com/aitjcize/epaper-image-convert.git","type":"git"},"_npmVersion":"11.5.1","description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","directories":{},"_nodeVersion":"22.17.1","dependencies":{"canvas":"3.2.1","commander":"^14.0.2","exifreader":"^4.14.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.2.5","@eslint/js":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/epaper-image-convert_0.1.19_1786976189206_0.6794231987332466","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"@aitjcize/epaper-image-convert","version":"0.1.20","description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","type":"module","main":"./src/index.js","exports":{".":"./src/index.js","./palettes":"./src/palettes.js","./presets":"./src/presets.js"},"bin":{"epaper-image-convert":"src/cli.js"},"scripts":{"test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","lint":"eslint src/","format":"prettier --write src/","format:check":"prettier --check src/"},"keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/aitjcize/epaper-image-convert.git"},"bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"homepage":"https://github.com/aitjcize/epaper-image-convert#readme","engines":{"node":">=18.0.0"},"dependencies":{"canvas":"3.2.1","commander":"^14.0.2","exifreader":"^4.14.1"},"devDependencies":{"@eslint/js":"^9.0.0","eslint":"^9.0.0","globals":"^15.0.0","jest":"^29.7.0","prettier":"^3.2.5"},"_id":"@aitjcize/epaper-image-convert@0.1.20","gitHead":"e4758b8b340f88f705869df234381442c7120e4d","_nodeVersion":"22.17.1","_npmVersion":"11.5.1","dist":{"integrity":"sha512-bLn5nsXEAgrLlEjTFhblyMw94BHpSq9RsVmKHDc3PWtVPhCLSiXVuF+QLTXRft3iJJfdWG8slo/HYk2JETwx1g==","shasum":"a5c7a4933904bb782d070fd158079cffbb8d58d5","tarball":"https://registry.npmjs.org/@aitjcize/epaper-image-convert/-/epaper-image-convert-0.1.20.tgz","fileCount":8,"unpackedSize":89466,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDy+/0KJOtWSRrTZe9Y2Wf3KJouvWTP/jdLt55smikCNgIhAOE8qlqhYht5qEhV8ES0XizgcAwzOEawRuOIgHUHK0zO"}]},"_npmUser":{"name":"aitjcize","email":"aitjcize@gmail.com"},"directories":{},"maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/epaper-image-convert_0.1.20_1787033679266_0.0023125897573101906"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-27T11:14:07.852Z","modified":"2026-08-18T06:14:39.554Z","0.1.0":"2026-01-27T11:14:08.076Z","0.1.1":"2026-01-27T11:20:54.483Z","0.1.2":"2026-01-27T12:36:05.700Z","0.1.3":"2026-01-27T16:58:22.914Z","0.1.4":"2026-01-27T17:37:56.453Z","0.1.5":"2026-01-27T18:21:05.363Z","0.1.6":"2026-01-29T09:28:03.712Z","0.1.7":"2026-01-29T19:18:57.501Z","0.1.8":"2026-01-31T12:23:18.764Z","0.1.9":"2026-03-29T03:25:49.142Z","0.1.10":"2026-04-06T07:15:16.395Z","0.1.11":"2026-04-06T07:20:13.508Z","0.1.12":"2026-04-10T01:53:59.557Z","0.1.13":"2026-04-10T06:53:32.412Z","0.1.14":"2026-04-10T09:05:35.832Z","0.1.15":"2026-04-24T13:56:11.172Z","0.1.17":"2026-06-29T15:34:26.569Z","0.1.18":"2026-06-30T04:52:04.318Z","0.1.19":"2026-08-17T14:16:29.366Z","0.1.20":"2026-08-18T06:14:39.406Z"},"bugs":{"url":"https://github.com/aitjcize/epaper-image-convert/issues"},"author":{"name":"Wei-Ning Huang","email":"aitjcize@gmail.com"},"license":"MIT","homepage":"https://github.com/aitjcize/epaper-image-convert#readme","keywords":["epaper","e-paper","eink","e-ink","electronic-paper","image-processing","dithering","tone-mapping","waveshare","display","cli","color-palette","floyd-steinberg"],"repository":{"type":"git","url":"git+https://github.com/aitjcize/epaper-image-convert.git"},"description":"Convert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization","maintainers":[{"name":"aitjcize","email":"aitjcize@gmail.com"}],"readme":"# epaper-image-convert\n\nConvert images for e-paper displays with advanced tone mapping, dithering, and color palette optimization.\n\n## Features\n\n- **Advanced Tone Mapping** - S-curve and contrast-based tone mapping for optimal e-paper display\n- **Error Diffusion Dithering** - Floyd-Steinberg, Stucki, Burkes, and Sierra algorithms\n- **Dynamic Range Compression** - Automatically compress images to match display's actual luminance range\n- **Color Palette Support** - Built-in presets and custom palette support with theoretical/perceived pairs\n- **EXIF Orientation** - Automatic EXIF orientation handling\n- **CLI and Library** - Use from command line or as a Node.js library\n\n## Installation\n\n```bash\nnpm install epaper-image-convert\n```\n\nOr install globally for CLI use:\n\n```bash\nnpm install -g epaper-image-convert\n```\n\n## CLI Usage\n\n### Basic Usage\n\n```bash\n# Convert a single image\nepaper-image-convert input.jpg output.png\n\n# Convert with specific display dimensions\nepaper-image-convert input.jpg -d 640x384\n\n# Convert all images in a directory\nepaper-image-convert ./photos ./converted\n```\n\n### Processing Presets\n\n```bash\n# List all available presets\nepaper-image-convert -l\n\n# Use Balanced preset - default, produces the most balanced result\nepaper-image-convert input.jpg -p balanced\n\n# Use Dynamic preset - enhanced contrast, vibrant colors\nepaper-image-convert input.jpg -p dynamic\n\n# Use Vivid preset - boosted colors for illustrations\nepaper-image-convert input.jpg -p vivid\n\n# Available presets: balanced, dynamic, vivid, soft, grayscale\n```\n\n### Custom Processing Parameters\n\n```bash\n# Adjust exposure and saturation\nepaper-image-convert input.jpg --exposure 1.2 --saturation 1.4\n\n# Use S-curve tone mapping with custom parameters\nepaper-image-convert input.jpg --tone-mode scurve \\\n  --scurve-strength 0.8 \\\n  --scurve-shadow 0.1 \\\n  --scurve-highlight 1.5\n\n# Use LAB color space for better grayscale matching\nepaper-image-convert input.jpg --color-method lab\n\n# Change dithering algorithm\nepaper-image-convert input.jpg --dither-algorithm stucki\n```\n\n### Palette Options\n\n```bash\n# Use built-in palette preset\nepaper-image-convert input.jpg --palette-preset spectra6\n\n# Use custom palette (JSON format)\nepaper-image-convert input.jpg --palette '{\n  \"theoretical\": {\n    \"black\": {\"r\": 0, \"g\": 0, \"b\": 0},\n    \"white\": {\"r\": 255, \"g\": 255, \"b\": 255},\n    \"yellow\": {\"r\": 255, \"g\": 255, \"b\": 0},\n    \"red\": {\"r\": 255, \"g\": 0, \"b\": 0},\n    \"blue\": {\"r\": 0, \"g\": 0, \"b\": 255},\n    \"green\": {\"r\": 0, \"g\": 255, \"b\": 0}\n  },\n  \"perceived\": {\n    \"black\": {\"r\": 5, \"g\": 5, \"b\": 5},\n    \"white\": {\"r\": 200, \"g\": 200, \"b\": 195},\n    \"yellow\": {\"r\": 210, \"g\": 200, \"b\": 10},\n    \"red\": {\"r\": 180, \"g\": 35, \"b\": 25},\n    \"blue\": {\"r\": 20, \"g\": 70, \"b\": 160},\n    \"green\": {\"r\": 45, \"g\": 120, \"b\": 70}\n  }\n}'\n```\n\n### Generate Thumbnails\n\n```bash\n# Generate thumbnail alongside output\nepaper-image-convert input.jpg output.png -t output_thumb.jpg\n\n# Custom thumbnail dimensions\nepaper-image-convert input.jpg output.png -t thumb.jpg --thumbnail-dimension 200x120\n```\n\n### Output Format\n\n```bash\n# Output as PNG (default)\nepaper-image-convert input.jpg output.png\n\n# Output as BMP\nepaper-image-convert input.jpg output.bmp -f bmp\n\n# Format is auto-detected when output is a directory\nepaper-image-convert input.jpg /tmp -f bmp  # Creates /tmp/input.bmp\n```\n\n### All Options\n\n```\nOptions:\n  -d, --dimension <WxH>           Display dimension (default: 800x480)\n  -f, --format <format>           Output format: png or bmp (default: png)\n  --palette-preset <name>         Palette preset (default: spectra6)\n  --palette <json>                Custom palette JSON\n  -l, --list-presets              List available presets and exit\n  -p, --processing-preset <name>  Processing preset (default: balanced)\n  --exposure <value>              Exposure multiplier (0.5-2.0)\n  --saturation <value>            Saturation multiplier (0.5-2.0)\n  --contrast <value>              Contrast multiplier (0.5-2.0)\n  --tone-mode <mode>              Tone mapping: scurve or contrast\n  --scurve-strength <value>       S-curve strength (0.0-1.0)\n  --scurve-shadow <value>         S-curve shadow boost (0.0-1.0)\n  --scurve-highlight <value>      S-curve highlight compress (0.5-5.0)\n  --scurve-midpoint <value>       S-curve midpoint (0.3-0.7)\n  --color-method <method>         Color matching: rgb or lab\n  --dither-algorithm <algorithm>  floyd-steinberg, stucki, burkes, sierra\n  --compress-dynamic-range        Compress to display range (default for balanced)\n  --skip-rotation                 Skip portrait-to-landscape rotation\n  --skip-dithering                Skip dithering step\n  --use-perceived-output          Use perceived palette for output\n  -t, --thumbnail <path>          Generate thumbnail\n  --thumbnail-dimension <WxH>     Thumbnail size (default: 400x240)\n  -v, --verbose                   Enable verbose output\n```\n\n## Library Usage\n\n### Basic Conversion\n\n```javascript\nimport { convertImage } from 'epaper-image-convert';\n\nconst { canvas, buffer } = await convertImage('input.jpg', {\n  width: 800,\n  height: 480,\n  processingPreset: 'balanced',\n  verbose: true,\n});\n\n// buffer is a PNG Buffer ready to write or send to device\nfs.writeFileSync('output.png', buffer);\n```\n\n### Advanced Usage\n\n```javascript\nimport {\n  processImage,\n  applyExifOrientation,\n  createPNG,\n  getPreset,\n  getPalette,\n  SPECTRA6,\n} from 'epaper-image-convert';\nimport { createCanvas, loadImage } from 'canvas';\n\n// Load image\nconst image = await loadImage('input.jpg');\nconst sourceCanvas = createCanvas(image.width, image.height);\nsourceCanvas.getContext('2d').drawImage(image, 0, 0);\n\n// Process with custom options\nconst { canvas, originalCanvas } = processImage(sourceCanvas, {\n  displayWidth: 800,\n  displayHeight: 480,\n  palette: SPECTRA6,\n  params: {\n    ...getPreset('dynamic'),\n    exposure: 1.1,\n    saturation: 1.4,\n  },\n  skipRotation: false,\n  verbose: true,\n  createCanvas,\n});\n\n// Convert to PNG\nconst pngBuffer = await createPNG(canvas);\n```\n\n### Custom Palette\n\n```javascript\nimport { processImage, validatePalette } from 'epaper-image-convert';\n\nconst customPalette = {\n  theoretical: {\n    black: { r: 0, g: 0, b: 0 },\n    white: { r: 255, g: 255, b: 255 },\n    yellow: { r: 255, g: 255, b: 0 },\n    red: { r: 255, g: 0, b: 0 },\n    blue: { r: 0, g: 0, b: 255 },\n    green: { r: 0, g: 255, b: 0 },\n  },\n  perceived: {\n    black: { r: 10, g: 10, b: 10 },\n    white: { r: 220, g: 215, b: 210 },\n    yellow: { r: 200, g: 190, b: 20 },\n    red: { r: 170, g: 40, b: 30 },\n    blue: { r: 30, g: 80, b: 150 },\n    green: { r: 50, g: 110, b: 65 },\n  },\n};\n\n// Validate palette format\nvalidatePalette(customPalette);\n\n// Use in processing\nconst { canvas } = processImage(sourceCanvas, {\n  displayWidth: 800,\n  displayHeight: 480,\n  palette: customPalette,\n});\n```\n\n## Palette Format\n\nPalettes come in pairs - `theoretical` and `perceived`:\n\n- **theoretical**: The ideal RGB values that the e-paper display driver expects. These are the values written to the output image that the device firmware will interpret.\n- **perceived**: The actual RGB colors as they appear on the physical display when measured or observed. E-paper displays have limited color gamut - \"white\" is often grayish, \"red\" appears more muted, etc.\n\n### Why Two Palettes?\n\nE-paper displays don't reproduce colors accurately. For example, when you send \"pure red\" (255, 0, 0) to a Spectra 6 display, the actual color that appears might be closer to (135, 19, 0) - a darker, less saturated red.\n\n**The dithering algorithm uses the perceived palette** to make accurate color-matching decisions. When deciding which palette color best represents a pixel, we compare against what colors *actually look like* on the display, not what we tell the display to show.\n\n**The output image uses the theoretical palette** because that's what the device firmware understands. The display driver maps these theoretical values to the appropriate ink colors.\n\nThis separation allows the dithering algorithm to produce visually accurate results while maintaining compatibility with the device's expected input format.\n\nFor a visual comparison showing the impact of using perceived palettes vs theoretical palettes, see the [Image Quality Comparison](https://github.com/aitjcize/esp32-photoframe?tab=readme-ov-file#image-quality-comparison) in the ESP32 PhotoFrame project.\n\n```json\n{\n  \"theoretical\": {\n    \"black\": { \"r\": 0, \"g\": 0, \"b\": 0 },\n    \"white\": { \"r\": 255, \"g\": 255, \"b\": 255 },\n    \"yellow\": { \"r\": 255, \"g\": 255, \"b\": 0 },\n    \"red\": { \"r\": 255, \"g\": 0, \"b\": 0 },\n    \"blue\": { \"r\": 0, \"g\": 0, \"b\": 255 },\n    \"green\": { \"r\": 0, \"g\": 255, \"b\": 0 }\n  },\n  \"perceived\": {\n    \"black\": { \"r\": 2, \"g\": 2, \"b\": 2 },\n    \"white\": { \"r\": 190, \"g\": 190, \"b\": 190 },\n    \"yellow\": { \"r\": 205, \"g\": 202, \"b\": 0 },\n    \"red\": { \"r\": 135, \"g\": 19, \"b\": 0 },\n    \"blue\": { \"r\": 5, \"g\": 64, \"b\": 158 },\n    \"green\": { \"r\": 39, \"g\": 102, \"b\": 60 }\n  }\n}\n```\n\n## Processing Presets\n\n| Preset | Description | Best For |\n|--------|-------------|----------|\n| `balanced` | Compressed dynamic range (default) | General use, prevents overexposure |\n| `dynamic` | S-Curve tone mapping | Photos with good dynamic range |\n| `vivid` | High saturation | Colorful images, illustrations |\n| `soft` | Low contrast | Subtle gradients |\n| `grayscale` | LAB color space | B&W photos, documents |\n\n## Support\n\nIf you find this project useful, consider buying me a coffee! ☕\n\n[![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20A%20Coffee-ffdd00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black)](https://buymeacoffee.com/aitjcize)\n\n## License\n\nMIT\n\n## Credits\n\nDeveloped for the [ESP32 PhotoFrame](https://github.com/aitjcize/esp32-photoframe) project.\n","readmeFilename":"README.md"}