En créant une fonctionnalité de conversion d’images en pixel art,
je me suis dit qu’il serait utile de séparer uniquement la logique de pixelisation pour pouvoir la réutiliser, et j’ai donc créé une bibliothèque de pixelisation d’images.
Caractéristiques
- zero-dependency + petite taille de package (environ 44 kB)
- utilisable à la fois dans le navigateur et dans Node.js
- prise en charge de deux modes de pixelisation :
clean/detail - possibilité de conserver la taille d’origine ou de choisir une sortie en basse résolution
- traitement possible en quelques ms même sur une base de 512×512
- facile à exécuter séparément dans un Worker côté navigateur, ce qui limite l’impact sur l’UI même pour des traitements d’images lourds
Fonctionnement
- Le mode
cleanutilise la couleur la plus fréquente dans chaque cellule, pour des contours nets - Le mode
detailutilise la couleur moyenne de chaque cellule, afin de préserver plus naturellement les dégradés et les textures
Exemple d’utilisation
import { pixelate } from 'fast-pixelizer'
const result = pixelate(imageData, { resolution: 32 })
// -> { data: Uint8ClampedArray, width, height }
Liens
- npm: https://www.npmjs.com/package/fast-pixelizer
- GitHub: https://github.com/handsupmin/fast-pixelizer
N’hésitez pas à l’essayer et à me faire part de vos retours. 🙂
Aucun commentaire pour le moment.