首页 > 编程语言 >从零开发一款图片编辑器(使用html5+javascript)

从零开发一款图片编辑器(使用html5+javascript)

时间:2023-10-15 10:22:17浏览次数:57  
标签:文件 javascript html js 编辑器 文件夹 html5 开发

最近开发了一个图片编辑器,类似于photoshop的网页版,源码参考自GitHub上,顺便也总结下使用html+js开发一个编辑器需要用到哪些知识点。

架构设计

选型: jquery.js 和 blueimp-canvas.js都是强大的页面库,功能上类似,jquery.js比较新中文文档也多一些。Exif.js提供了 JavaScript读取图像的原始数据的功能扩展,例如:拍照方向、相机设备型号、拍摄时间、ISO感光度、GPS 地理位置等数据。
要点: 本项目使用的是分功能模块开发的方式,将菜单、左区域、语言、配置,都放在了不同的文件中,比如菜单是config-menu.js,语言是languages文件夹,类库是libs文件夹,各种模块放到modules文件夹,核心库放到了core里面,各种小工具放到了tools里面。如果同学们想深入了解各区域代码,可以定位到相应的文件夹下面查看。

代码结构

整个项目的代码分为三个部分,分别是css、js、html。入口文件是js文件夹中的main.js,入口页面文件是index.html。如图所示:

首页介绍

首页将各种css、js文件引入,其中bundle.js是主渲染文件(使用npm打包命令打包后会生成bundle.js文件)。

	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta http-equiv="x-ua-compatible" content="IE=edge" />
	<title>在线PS</title>
	<meta name="description" content="." />
	<meta name="keywords"
		content="" />
	<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=0" />
	<link rel="icon" sizes="192x192" href="images/favicon.png">

	<!-- Google -->
	<meta itemprop="name" content="在线PS网页版" />
	<meta itemprop="description" content="在线PS网页版是使用HTML5的免费在线图片编辑器..." />
	<!-- Twitter -->
	<meta name="twitter:card" content="summary_large_image" />
	<meta name="twitter:title" content="在线PS网页版" />
	<meta name="twitter:description" content="在线PS网页版是使用HTML5的免费在线图片编辑器..." />
	<!-- Facebook, Pinterest -->
	<meta property="og:title" content="在线PS网页版" />
	<meta property="og:type" content="article" />
	<meta property="og:url" content="https://ps.gitapp.cn" />
	<meta property="og:description" content="在线PS网页版是使用HTML5的免费在线图片编辑器..." />
	<meta property="og:site_name" content="在线PS网页版" />

	<script src="dist/bundle.js"></script>

视频演示效果

bilibili视频演示

参考知识

标签:文件,javascript,html,js,编辑器,文件夹,html5,开发
From: https://www.cnblogs.com/net19880504/p/17765310.html

相关文章

  • 深入理解 JavaScript 时间分片:原理、应用与代码示例解析
    JavaScript时间分片(TimeSlicing)是一种优化技术,用于将长时间运行的任务拆分为多个小任务,以避免阻塞主线程,提高页面的响应性和性能。本文将详细解释JavaScript时间分片的原理、应用场景,并通过代码示例帮助读者更好地理解和应用该技术。本文首发于:kelen.cc概念时间分片(TimeSl......
  • Javascript、axios、vue基础命令快速学习
    1.js:JavaScript基础学习JavaScript基础学习简单案例1.点击img1,则展示img1图片默认,点击img2则展示img2图片2.输入框鼠标聚焦onfocus后,显示小写toLowerCase(),失去焦点onblur后显示大写toUpperCase()3.点击全选按钮,所有复选框为被选中状态,点击反选则取消勾选状态JavaScrip......
  • [JavaScript]arguments对象
    当我们不确定有多少个参数传递的时候,可以使用arguments来获取。在JavaScript中,arguments实际上是充当函数的内置对象。所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参。arguments展示形式是一个伪数组,可以进行遍历。伪数组具有以下特点:1.......
  • HTML5 大文件断点续传完整思路整理
    用html5的新特性分割文件,为达到断点续传功能用spark.js获取文件md5以确保文件的唯一性流程概述: 复制代码(此功能前端共需调用3个接口,分别为简称作A/B/C)1,获取文件信息:使用HTML5的原生上传input,选择文件后,获取文件的所有信息(文件名、文件总字节数等)......
  • 【华为OD统一考试B卷 | 100分】 报数问题 (1到3报数)(C++ Java Python javaScript)
    华为OD在线刷题平台平台涵盖了华为OD机试A卷+B卷的真题。平台的题库不断更新,确保能够涵盖华为OD机试的所有真题。点击链接注册并开始你的刷题之旅:点击立即刷题华为OD统一考试A卷+B卷新题库说明2023年5月份,华为官方已经将的2022/0223Q(1/2/3/4)统一修改为OD统一考试(A卷)和OD统......
  • HTML5实现文件断点续传的方法
    HTML5的FILEapi,有一个slice方法,可以将BLOB对象进行分割。前端通过FileList对象获取到相应的文件,按照指定的分割方式将大文件分段,然后一段一段地传给后端,后端再按顺序一段段将文件进行拼接。断点续传原理目前比较常用的断点续传的方法有两种,一种是通过websocket接口进行文件上传......
  • 在JavaScript中如何检查数组是否包含某个值?
    内容来自DOChttps://q.houxu6.top/?s=在JavaScript中如何检查数组是否包含某个值?在JavaScript中,最简洁、高效的方法来检查数组是否包含某个值是什么?这是我所知的唯一方法:functioncontains(a,obj){for(vari=0;i<a.length;i++){if(a[i]===obj)......
  • 在JavaScript中,如何获取时间戳?
    内容来自DOChttps://q.houxu6.top/?s=在JavaScript中,如何获取时间戳?我想要一个单独的数字,代表当前的日期和时间,就像Unix时间戳一样。毫秒级时间戳要获取自Unix纪元以来的毫秒数,调用Date.now:Date.now()或者使用一元运算符+来调用Date.prototype.valueOf:+newDate......
  • vue-quill-editor富文本编辑器
    安装npm vue-quill-editornpminstallvue-quill-editor--save引入main.js文件里//字典标签组件importquillEditorsfrom"./components/quillEditor/index";//注册全局容器Vue.component("quillEditors",quillEditors);//富文本框文件目录预览openai的chatgpt描述一个表......
  • world creator地形编辑器的基础操作
    worldcreator地形编辑器的基础操作worldcreator是一款实时地形、景观生成器。不仅好上手,生成的高度图和纹理贴图和obj模型可以导入Blender、ue4、ue5、Unity、C4D等三维软件、利用它快速设置地形。打开软件,在界面,左边是新建文件,右边是打开文件。界面基本移动:键盘的WAS......