像素织梦 (PixelKnit) v1.1:像素地图编辑器与完整地图管理系统

系列文章 PixelKnit 像素织梦第 2 篇 / 共 3 篇

从 Canvas 编织图编辑器到模块化架构——一个前端应用从原型到工程化的完整演进记录。

  1. 像素织梦 (PixelKnit):一个功能完整的Web编织辅助工具
  2. 像素织梦 (PixelKnit) v1.1:像素地图编辑器与完整地图管理系统
  3. 像素织梦 (PixelKnit) v2.0:模块化架构重构与用户体验全面升级

引言

在 v1.0 版本发布后,像素织梦 (PixelKnit) 已经成为一个功能完整的编织引导应用。但用户反馈显示,他们不仅需要跟踪编织进度,还希望能够创建和编辑自己的像素地图。因此,我们推出了 v1.1 版本,带来了完整的像素地图编辑器和智能地图管理系统。

像素织梦 v1.1 - 从编织引导到地图创作,让每一格像素都触手可及。

应用Logo 图1:像素织梦 (PixelKnit) Logo - 像素艺术风格的品牌标识

🆕 v1.1 版本亮点

v1.1 版本的核心更新

  • 🎨 像素地图编辑器:完整的编辑模式,支持绘制、调色板、撤销/重做
  • 📁 智能地图管理:示例地图和用户地图区分,支持复制、编辑、删除
  • 💾 智能保存机制:编辑现有地图直接更新,新建地图另存为
  • 🎯 Logo 展示:应用主页和应用列表页面显示 PixelKnit Logo
  • 性能优化:保持流畅的编辑体验

图2:v1.1 版本主界面,展示Logo、地图列表和编辑功能入口

像素地图编辑器

编辑模式概述

v1.1 版本引入了完整的像素地图编辑器,用户可以在应用内直接创建和编辑像素地图,无需外部工具。

编辑模式的核心特性

  • 画布编辑:在主画布上直接绘制像素,支持点击和拖拽填充
  • 实时预览:编辑时实时显示完整颜色,与浏览模式无缝切换
  • 尺寸灵活:支持 10-500 像素的任意尺寸设置
  • 调色板系统:自动解析颜色,支持自定义颜色添加

图3:编辑模式界面,展示编辑工具栏、调色板和画布

调色板系统

智能调色板

  • 自动解析:复制地图时自动解析所有颜色并添加到调色板
  • 颜色选择器:支持使用浏览器原生颜色选择器添加自定义颜色
  • 实时显示:显示当前选中颜色的预览和 RGB 值
  • 颜色管理:调色板中的颜色可以随时选择使用

图4:调色板系统,展示颜色预览、RGB值和颜色选择器

编辑工具

完整的编辑工具集

  1. 撤销/重做系统
    • 支持最多 50 步历史记录
    • 快捷键支持(Ctrl+Z / Ctrl+Y)
    • 实时更新按钮状态
  2. 尺寸调整
    • 手动设置宽度和高度(10-500 像素)
    • 应用尺寸时保留现有像素数据
    • 支持扩大和缩小画布
  3. 清空地图
    • 一键清空所有像素
    • 保留当前尺寸和调色板
    • 快速重置画布
  4. 保存功能
    • 保存到 localStorage
    • 自动下载 JSON 文件
    • 智能保存机制(见下文)

图5:编辑工具栏,展示尺寸设置、保存、清空、撤销/重做等工具

智能地图管理系统

地图类型区分

v1.1 版本引入了地图类型系统,区分示例地图和用户地图:

示例地图

  • 只读保护,不可编辑或删除
  • 可以复制创建用户地图副本
  • 作为模板和参考使用

用户地图

  • 完全可编辑和可删除
  • 可以复制创建新副本
  • 保存在 localStorage 中
graph LR
    Maps["地图列表"] --> Example["示例地图<br/>pixel_map_data.json"]
    Maps --> User["用户地图<br/>localStorage"]
    Example --> RO["只读保护<br/>不可编辑/删除"]
    Example --> Copy["可复制为模板"]
    User --> RW["完全可编辑/删除"]
    User --> Edit["编辑直接更新原图"]

图6:地图类型标识,展示”示例”和”用户”标签

地图操作

三种核心操作

  1. 复制地图
    • 点击”复制”按钮直接创建新地图
    • 自动解析并添加所有颜色到调色板
    • 不进入编辑模式,直接保存对话框
    • 默认显示名称为”原地图名称 (副本)”
  2. 编辑地图
    • 点击用户地图的”编辑”按钮进入编辑模式
    • 编辑后保存直接更新原图(不另存为)
    • 支持撤销/重做,完整编辑历史
  3. 删除地图
    • 仅用户地图可删除
    • 删除前需要确认
    • 自动清理 localStorage 数据

图7:地图操作按钮,展示复制、编辑、删除功能

智能保存机制

v1.1 版本实现了智能保存机制,根据编辑状态自动选择保存方式:

编辑现有地图

  • 检测到正在编辑用户地图时
  • 保存时直接更新原图数据
  • 不显示保存对话框,直接保存
  • 自动退出编辑模式

新建地图

  • 从空白画布或复制地图创建
  • 保存时显示保存对话框
  • 自动生成 5 位数字 ID(如 map_00001
  • 可以自定义显示名称
graph LR
    Save["用户触发保存"] --> Q{"正在编辑<br/>用户地图?"}
    Q -->|是| Update["直接更新原图<br/>自动退出编辑"]
    Q -->|否| Dialog["弹出保存对话框<br/>输入名称"]
    Dialog --> NewID["自动生成 ID<br/>map_00001"]
    NewID --> NewSave["另存为新地图"]

图8:保存对话框,展示地图ID和显示名称输入

Logo 展示系统

v1.1 版本添加了 PixelKnit Logo 的展示功能:

应用主页

  • Logo 显示在页面头部,标题上方
  • 120px × 120px(桌面端)
  • 支持 hover 放大效果
  • 与标题和副标题垂直排列

应用列表页面

  • Logo 显示在应用卡片头部
  • 80px × 80px(桌面端)
  • 居中显示,突出品牌标识
  • 响应式设计,移动端自动缩小

图9:Logo展示效果,展示应用主页和应用列表页面的Logo位置

技术实现细节

编辑模式架构

状态管理

// 编辑模式状态
let isEditMode = false;
let editingMapName = null;  // 正在编辑的地图名称
let editingMapType = null;  // 地图类型:'user' 或 'example'
let editGridData = null;    // 编辑网格数据
let editColorMap = null;    // 编辑颜色映射
let editHistory = [];       // 编辑历史记录(最多50步)
let editHistoryIndex = -1;  // 当前历史索引

编辑历史系统

  • 使用数组存储历史记录
  • 每次编辑操作保存完整状态快照
  • 限制最多 50 步历史记录
  • 支持撤销和重做操作

地图管理实现

地图列表结构

// 地图列表格式
[
  {
    "name": "pixel_map_data",
    "file": "pixel_map_data.json",
    "displayName": "示例地图",
    "type": "example"  // 示例地图
  },
  {
    "name": "map_00001",
    "file": "map_00001.json",
    "displayName": "用户地图 00001",
    "type": "user"  // 用户地图
  }
]

数据持久化

  • 示例地图:从 JSON 文件加载
  • 用户地图:从 localStorage 加载
  • 地图列表:自动合并示例和用户地图
  • 自动管理地图 ID 生成

智能保存逻辑

保存流程判断

function saveMapToFile() {
    // 如果正在编辑用户地图,直接更新原图
    if (editingMapName && editingMapType === 'user') {
        // 直接更新,不显示对话框
        updateExistingMap();
        exitEditMode();
        return;
    }
    
    // 否则,显示保存对话框,另存为新地图
    showSaveMapDialog();
}

功能对比

v1.0 vs v1.1

功能 v1.0 v1.1
编织引导
进度跟踪
地图编辑
地图管理
地图复制
Logo展示
撤销/重做
调色板

图10:v1.0 与 v1.1 功能对比图

使用场景

场景一:创建自定义地图

  1. 进入编辑模式(从空白或复制地图)
  2. 设置画布尺寸
  3. 使用调色板绘制像素图案
  4. 保存为新地图
  5. 开始编织引导

图11:创建自定义地图的完整流程

场景二:编辑现有地图

  1. 点击用户地图的”编辑”按钮
  2. 修改像素图案
  3. 使用撤销/重做调整
  4. 保存直接更新原图

图12:编辑现有地图的完整流程

场景三:复制和修改

  1. 点击示例地图的”复制”按钮
  2. 在保存对话框中输入显示名称
  3. 创建副本后进入编辑模式
  4. 修改后保存为新地图

图13:复制和修改地图的完整流程

设计思考

为什么区分示例地图和用户地图?

设计理念

  • 示例地图保护:确保示例地图不被误删或修改,保持模板完整性
  • 用户自由创作:用户地图完全可控,支持自由编辑和删除
  • 清晰的权限边界:通过类型标识和操作按钮,明确区分可操作范围

为什么编辑现有地图直接更新?

用户体验考虑

  • 符合直觉:编辑现有文件应该直接保存,而不是另存为
  • 减少操作步骤:不需要输入名称,直接保存
  • 避免数据冗余:不会创建重复的地图文件

为什么复制地图不进入编辑模式?

工作流程优化

  • 快速复制:复制后直接保存,适合快速创建副本
  • 按需编辑:需要修改时再进入编辑模式
  • 减少干扰:避免不必要的编辑界面切换

视觉设计更新

Logo 集成

设计原则

  • 品牌一致性:Logo 与应用整体风格保持一致
  • 响应式适配:不同页面和屏幕尺寸自动调整大小
  • 交互反馈:hover 效果增强用户体验

编辑模式 UI

界面设计

  • 独立工具栏:编辑工具集中管理,操作便捷
  • 调色板面板:右侧浮动面板,不遮挡主画布
  • 无缝切换:编辑模式和浏览模式平滑过渡

图14:编辑模式UI设计,展示工具栏、调色板和画布的布局

性能优化

编辑模式性能

优化策略

  • 历史记录限制:最多 50 步,避免内存占用过大
  • 批量操作:编辑操作批量处理,减少重绘
  • 智能重绘:仅重绘修改区域,提升性能

地图管理性能

优化措施

  • 延迟加载:地图数据按需加载,不一次性加载所有地图
  • 缓存机制:已加载的地图数据缓存,避免重复加载
  • DOM 缓存:地图项 DOM 引用缓存,减少查询

未来展望

虽然 v1.1 版本已经功能完整,但仍有改进空间:

  1. 图片导入功能:支持导入图片并自动转换为像素地图
  2. 图层系统:支持多图层编辑,更复杂的创作
  3. 导出功能:支持导出为 PNG、SVG 等格式
  4. 模板库:提供更多示例地图模板
  5. 协作功能:支持多用户协作编辑

图15:未来功能展望,展示计划中的新功能

更新日志

v1.1.0 (2025-11-09)

新增功能

  • 🆕 像素地图编辑器:完整的编辑模式,支持绘制、调色板、撤销/重做
  • 🆕 地图管理系统:示例地图和用户地图区分,支持复制、编辑、删除
  • 🆕 智能保存机制:编辑现有地图直接更新,新建地图另存为
  • 🆕 Logo 展示:应用主页和应用列表页面显示 PixelKnit Logo

优化改进

  • ✅ 性能优化(编辑模式历史记录、地图管理缓存)
  • ✅ UI/UX 优化(编辑工具栏、调色板面板)
  • ✅ 响应式设计(Logo 和编辑界面适配)

v1.0.0 (2025-11-09)

  • ✅ 完整编织引导功能实现
  • ✅ 对角预设模式
  • ✅ 进度跟踪系统
  • ✅ 放大镜和工具提示

总结

像素织梦 (PixelKnit) v1.1 是一个重大更新版本,从单纯的编织引导工具升级为完整的像素地图创作和编织平台。新增的编辑器和地图管理系统,让用户可以:

  • 自由创作:创建自己的像素地图
  • 灵活编辑:修改现有地图,满足个性化需求
  • 便捷管理:复制、编辑、删除地图,管理自己的作品库

v1.1 版本不仅保持了 v1.0 的所有编织引导功能,还增加了强大的创作能力,真正实现了”从像素到编织”的完整工作流程。

像素织梦 v1.1 - 不仅跟踪编织,更要创造编织。让每一格像素都成为艺术,让每一针编织都充满创意。


项目地址GitHub Repository

在线体验像素织梦 (PixelKnit)

技术栈:HTML5, CSS3, JavaScript, Canvas API, localStorage

相关文章像素织梦 v1.0 介绍


本文介绍了像素织梦 v1.1 版本的新功能和实现细节。如果你有任何问题或建议,欢迎在评论区留言。

图像资源说明

本文使用的图像资源应放置在以下位置:

assets/images/knitting-guide/
├── logo/
│   └── PixelKnit_logo.png          # Logo图片(已存在)
├── v1.1-main-interface.png          # v1.1版本主界面截图
├── edit-mode-interface.png          # 编辑模式界面截图
├── color-palette-system.png         # 调色板系统截图
├── edit-toolbar.png                 # 编辑工具栏截图
├── map-type-badges.png              # 地图类型标识截图
├── map-actions.png                  # 地图操作按钮截图
├── save-dialog.png                  # 保存对话框截图
├── logo-display.png                 # Logo展示效果截图
├── version-comparison.png           # 功能对比图
├── create-custom-map.png            # 创建自定义地图流程截图
├── edit-existing-map.png            # 编辑现有地图流程截图
├── copy-and-modify.png              # 复制和修改流程截图
├── edit-mode-ui-design.png          # 编辑模式UI设计图
└── future-features.png              # 未来功能展望图

图像要求

  • 格式:PNG 或 JPG
  • 尺寸:建议宽度 1200-1600px
  • 质量:清晰、高分辨率
  • 风格:与应用界面保持一致
文章目录