在线图片编辑器miniPaint

本文介绍了开源的在线图像编辑器miniPaint,如何使用HTML5技术实现并在浏览器中运行,包括其主要功能、Docker镜像构建过程,以及在群晖上遇到文件监视器限制时的解决方案。
摘要由CSDN通过智能技术生成

在这里插入图片描述

什么是 miniPaint ?

miniPaint 是一个开源的在线图像编辑器,使用 HTML5 技术实现,无需购买、下载和安装软件,也不需要安装任何插件或过时的 Flash 即可使用。miniPaint 直接在浏览器中运行。您可以创建图像、从剪贴板粘贴 (ctrl+v) 或从计算机上传(使用菜单或拖放)。不会将任何内容发送到任何服务器。一切都保留在您的浏览器中。

软件主要功能:

  • 文件:打开图像、目录、URL、数据 URL,拖放,保存(PNGJPGBMPWEBP、动画GIFTIFFJSON(图层数据),打印。
  • 编辑:撤消、剪切、复制、粘贴、选择、从剪贴板粘贴。
  • 图像:信息、EXIF、裁剪、缩放、调整大小(Hermite采样、默认调整大小)、旋转、翻转、颜色校正(亮度、对比度、色调、饱和度、亮度)、自动调整颜色、网格、直方图、反相。
  • 图层:多图层系统、差异、合并、平铺、支持透明度。
  • 特效:黑白、模糊(盒状、高斯、堆叠、缩放)、鼓起/收缩、降噪、去色、抖动、点阵、边缘、浮雕、丰富、伽马、颗粒、灰度、热图、JPG压缩、马赛克、油画、棕褐色、锐化、反曝光、移轴、晕影、颜色振动、复古、蓝图、夜视、铅笔,还有 Instagram 滤镜:1977AdenClarendonGinghamInkwellLo-fiToasterValenciaX-Pro II
  • 工具:铅笔、画刷、魔术棒、橡皮擦、填充、取色器、字母、裁剪、模糊、锐化、去色、克隆、边框、精灵、关键点、颜色缩放、替换颜色、恢复透明度、内容填充。
  • 帮助:键盘快捷键、翻译。

在这里插入图片描述

官方提供了在线试用,地址:https://viliusle.github.io/miniPaint

构建镜像

如果你不想自己构建,可以跳过,直接阅读下一章节

官方没有提供 Docker 镜像,也没有在源码中找到 Dockerfile 文件,老苏后来是在 wiki 中找到的

源文件地址:https://github.com/viliusle/miniPaint/wiki/Docker/4edb045378d1d535bc19873d4492f519a0b99a31

#Written by Ange Cesari
# Use official Node.js based on Alpine
FROM node:16-alpine

# Create dir for application
WORKDIR /usr/src/app

# Copy package.json and package-lock.json
COPY package*.json ./

# Install dependencies
RUN npm i

# Copy the rest of the application code
COPY . .

# Expose the port the application will run on
EXPOSE 8080

# Run the application
CMD ["npm", "run", "server"]

接下来要修改根目录下的 webpack.config.js 文件,找到 devServer 代码块

在这里插入图片描述

增加 一行代码,跳过主机检查,好处是省事,坏处是不安全,建议不要暴露到公网运行

当设置为 'all' 时,此选项将跳过主机检查。所以不建议这样做,因为不检查主机的应用程序容易受到 DNS 重新绑定攻击。

allowedHosts: "all",

在这里插入图片描述

构建镜像和容器运行的基本命令如下👇

# 下载代码
git clone https://github.com/viliusle/miniPaint.git
  
# 进入目录
cd miniPaint

# 将 Dockerfile 放入当前目录

# 修改 webpack.config.js 文件
  
# 构建镜像
docker build -t wbsu2003/minipaint:v1 .

# 运行容器
docker run -d \
   --name minipaint \
   -p 3584:8080 \
   wbsu2003/minipaint:v1

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 minipaint ,下拉找到 wbsu2003/minipaint,版本选择 latest

在这里插入图片描述

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
35848080

在这里插入图片描述

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name minipaint \
   -p 3584:8080 \
   wbsu2003/minipaint

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
  minipaint:
    image: wbsu2003/minipaint
    container_name: minipaint
    restart: unless-stopped
    ports:
      - 3584:8080

然后执行下面的命令

# 新建文件夹 minipaint 
mkdir -p /volume1/docker/minipaint

# 进入 minipaint 目录
cd /volume1/docker/minipaint

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

一般情况下,现在就可以在浏览器中输入 http://群晖IP:3584 进行访问了,但是 miniPaint 可能会有不同,在群晖上可能很大概率你会发现容器是停止状态,或者处于不断重启的状态

在这里插入图片描述

不要慌,进日志看看,是不是能找到下面👇这个错误?

Error: ENOSPC: System limit for number of file watchers reached

在这里插入图片描述

如果不是,那就只能具体情况具体分析了,如果是,请按照后面的步骤操作,以下操作需使用 ssh 客户端连上群晖后,在命令行进行操作

这个错误的原因是指系统中的文件监视器数量达到了限制,可以通过执行以下命令检查当前 inotify 文件监视限制

# 检查当前 inotify 文件监视限制
cat /proc/sys/fs/inotify/max_user_watches

在这里插入图片描述

您可以通过以下方式临时设置新限制

# 临时设置新限制
sudo sysctl fs.inotify.max_user_watches=131070

# 加载并应用系统参数配置文件
sudo sysctl -p

在这里插入图片描述

或者您可以设置永久限制

# 可以设置永久限制
echo fs.inotify.max_user_watches = 524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

在这里插入图片描述

完成上面这些操作后,再次启动容器,在浏览器中输入 http://群晖IP:3584 就能看到主界面

在这里插入图片描述

设置中文

菜单栏中 Tools --> Language --> 简体中文

在这里插入图片描述

设置完成后,界面直接就变成了中文了

在这里插入图片描述

祝大家周末愉快~

在这里插入图片描述

参考文档

viliusle/miniPaint: online image editor
地址:https://github.com/viliusle/miniPaint

miniPaint - image editor
地址:https://viliusle.github.io/miniPaint/

Docker · viliusle/miniPaint Wiki
地址:https://github.com/viliusle/miniPaint/wiki/Docker/4edb045378d1d535bc19873d4492f519a0b99a31

Run miniPaint - Browser Based Image Editor - in Docker - YouTube
地址:https://www.youtube.com/watch?v=hjjMTyJJz3c

node.js - Nodemon Error: “System limit for number of file watchers reached” - Stack Overflow
地址:https://stackoverflow.com/questions/53930305/nodemon-error-system-limit-for-number-of-file-watchers-reached

DevServer | webpack
地址:https://webpack.js.org/configuration/dev-server/

  • 8
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Pixie Image Editor 在线图片编辑器 中文版 功能 集成 - 轻松将pixie集成到任何现有项目或应用程序中。 可扩展 - Pixie接口和API可以使用新功能进行扩展。 移动 - Pixie拥有完整的移动支持,并可自动调整其界面以适应任何设备的大小。 可自定义的UI - 通过显示,隐藏或添加新菜单项,更改工具栏位置或使用不同的主题来自定义UI。 可翻译 - Pixie的界面可通过配置完全翻译。 水印 - 保存的照片可以使用指定的文本轻松加水印。 模式 - 在叠加(模态),内联或全屏模式之间进行选择。 工具API - 通过API使用所有精灵工具(调整大小,裁剪,框架等),而无需打开精灵界面。 可自定义的工具 - 所有工具都可完全自定义,您可以删除或修改和添加自定义贴纸,形状,字体,框架等。 状态 - 以json格式保存当前编辑器状态,允许使用预构建模板等功能。 照片处理 - 通过界面或API调整大小,裁剪,转换等。 滤镜 - Pixie配有许多内置滤镜,如灰度,模糊,黑白,复古等。可以通过API添加更多过滤器.. 框架 - 为任何大小的照片添加内置响应帧或添加自己的帧。 裁剪 - 将照片裁剪为指定宽高比之一,或让用户通过UI选择自定义裁剪区域。 绘图 - 功能强大的免费绘图工具支持鼠标和触摸,具有多种画笔类型,颜色等。 文本 - 完全支持向图像添加文本。可以使用数百种谷歌字体或仅使用自定义添加的字体。 形状 - 只需指定svg图像路径,即可轻松添加自定义形状。 贴纸 - 可以添加或删除自定义贴纸。任何类型的图像都可以用作贴纸。 角落 - 只需单击一下或API调用即可对图像角进行四舍五入。 空画布 - Pixie不必编辑现有照片,也可以从头开始轻松创建自定义图像。 历史记录 - 所有编辑器操作都是非破坏性的,可以通过历史记录工具轻松撤消和重做。 对象 - 所有对象(如贴纸,形状和文本)都在自己的图层上,可以通过更改颜色,添加阴影,背景等来轻松移动,调整大小,删除和修改。 图案和渐变 - 所有对象都可以使用许多内置或自定义图案和渐变填充。 保存 - 修改后的图像可以通过API或接口轻松保存在本地设备或服务器上。 缩放和平移 - 可以使用鼠标,鼠标滚轮或移动设备上的触摸和捏合手势来缩放和平移画布。 HTML5 - Pixie使用原生HTML5,这意味着它可以在每个设备上运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨浦老苏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值