Skip to content

XPixelImage — 像素图

基于 Canvas 的像素风格图片转换组件。将任意图片降采样再最近邻拉升,产生像素块效果,支持像素强度调节与颜色数量限制。

实时演示

加载中...
加载中...
加载中...
vue
<XPixelImage src="/pixel-demo.png" :pixel-size="16" />

Props

属性类型默认值说明
srcstring—(必填)图片地址:本地路径 / 网络 URL / base64 data URL 均可
widthnumber300展示宽度(px)
heightnumber300展示高度(px)
pixelSizenumber8像素块大小(2~64),越大像素感越强
colorCountnumber0颜色数量限制(0 = 不限制)
framebooleantrue是否显示像素风边框

像素强度对照

pixelSize效果
4细腻,保留较多细节
8中等,平衡细节与像素感
16粗犷,像素块明显
32极简,仅保留色块轮廓

工作原理

  1. 降采样:缩小到 (width/pixelSize) × (height/pixelSize),最近邻插值保留硬边缘。
  2. 颜色量化(可选):设 colorCount 后将 RGB 空间均匀划分为 ∛colorCount 级,映射到最近色块。
  3. 拉升:放大回目标尺寸,imageSmoothingEnabled = false 保证像素锐利。

注意事项

  • src 变化自动重新加载并像素化。
  • 大图 + 小 pixelSize 时中间计算量大,建议控制尺寸。
  • colorCount 为均匀量化(非 K-Means),性能更好。
  • 图片需支持 CORS,否则 Canvas drawImage 会报安全错误。

基于 VitePress + Vue 3 构建