Java/JavaScript有哪些图形图像处理的框架?

news2024/11/15 8:24:00

文章目录

    • 一个小问题引发的学习热潮
    • 其它几个图形库
    • Eclipse GEF框架
    • Java图像库
    • JS 的图形框架
      • 图形处理库
      • 图像编辑
      • 物理引擎
      • 流程图/组织图/图编辑等
      • 全景图/AR/VR
      • 3D库
    • Javascript游戏编程库
    • 尾声

一个小问题引发的学习热潮

一直对Java图形图像编程念兹在兹,书架上有几本相关的书,也不时拿出来翻翻。

在这里插入图片描述
忽一天,遇到这么个需求:你能用java开发一个画面工具吗?功能:

  1. 能画基本的几何图形:矩形、圆形、多边形
  2. 能在画布上拖放这些图形
  3. 能进行连线
    我听了吓一跳,这不是让我做一个类似于visio活drawio的工具吗?或者,要像PPT里的图形工具一样。
    其实,上面三个基本功能不难实现,一千行代码可以搞掂。但是,如果再加上下面功能,则复杂度大大增加:
  4. 能智能连线,如自动吸附到锚点,能自动折线
  5. 图形拖动后,连线也跟着动
  6. 图形能to front,to back
    实现前三条功能,那这个程序只是个大学生的家庭作业,实现后三条,则是一个小产品。
    我开始苦苦搜寻,上入github,下寻遍gitee,包括Eclipse的Draw2D和GEF库,最后我发现mxGraph这个库相对比较接近上面的需求。别看开源世界那么大,贴近这个需求的并不多,当然有些商业软件是包含这些基本功能的。
    在这里插入图片描述

其它几个图形库

  • Gephi. Gephi is the leading visualization and exploration software for all kinds of graphs and networks. Gephi is open-source and free. https://gephi.org/

  • JUNG — the Java Universal Network/Graph Framework–is a software library that provides a common and extendible language for the modeling, analysis, and visualization of data that can be represented as a graph or network. It is written in Java, which allows JUNG-based applications to make use of the extensive built-in capabilities of the Java API, as well as those of other existing third-party Java libraries. https://jung.sourceforge.net/

  • jgraph: https://github.com/jgraph, JGraph specialises in browser-based diagramming components and applications.

  • JFreechart: 大名鼎鼎,功能丰富,适合Swing桌面端,也适合web端。

Eclipse GEF框架

SWT and JFace can also be used outside Eclipse.
GEF可以制作流程图、UML图。

Java图像库

  • JAI
  • ImageJ

JS 的图形框架

Javascript 的主流框架有antV,echarts,handsometable,D3,three.js,fabric等,两种绘图机制:基于svg,基于canvas和dom
Canvas技术的诞生让绘图技术如虎添翼,使得JS能胜任图形绘制、流程图、组织图、甘特图、全景图、3D库、VR/AR、图像编辑等主要处理。

  • JS libraries, D3:d3是王者,Javascript世界最为强大的图形库。可以制作报表,思维导图。
  • mxGraph is a JavaScript diagramming library that enables interactive graph and charting applications to be quickly created that run natively in any major browser that is supported by its vendor.
  • Drawio(https://github.com/jgraph/drawio):流程图,思维图,组织结构图的首选,替代PPT画图
  • fabric.js : 可以制作封面,和创客贴一样的设计平台
  • highcharts:数据可视化图表,性能好
  • ECharts,一个使用 JavaScript 实现的开源可视化库,提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treemap、旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图,仪表盘,并且支持图与图之间的混搭。因此在绘制地图方面,Echarts略胜一筹。
  • AntV:阿里出品,性能卓越,功能强大,搞WebGL图形的首选
  • SVG.js:这个库的开发人员的目标是使其尽可能小和尽可能快,同时提供几乎完整的 SVG 规范覆盖。没有依赖,库可以独立使用。
  • Snap.svg:使用 SVG 和 JavaScript 创建与分辨率无关的矢量图形
  • miniPaint: 在线版的PS
  • konva, 和fabric.js类似,比fabric.js略差一点
  • method draw svg绘制编辑器: https://github.com/methodofaction/Method-Draw

分一下类吧。

图形处理库

d3.js
Konva
fabric.js

图像编辑

miniPaint
DarkroomJS
fabric-brush
fabricjs-image-editor-origin
animockup

物理引擎

matter.js

流程图/组织图/图编辑等

gojs
butterfly
wireflow
flowy
Workflow Designer

全景图/AR/VR

Pannellum
Panolens.js
JS-Cloudimage-360-View
A-Frame

3D库

three.js
phoria.js

Javascript游戏编程库

  • Three.js: 一个 JavaScript 的 3D 库。然而我们可以用它来做各种的 3D 效果和游戏,能够在网页端实现大部分三维效果
  • Phaser:开源的 html5 游戏框架,支持 canvas 和 webgl 渲染。2d 游戏的 JavaScript 实现,集合了渲染、物理引擎
  • Createjs:开源的 html5 游戏、动画和交互应用框架,adobe animate 软件基于该库来生成代码
  • Egret:国内优秀的游戏制作引擎, 同时支持 3d 和 2d,使用 typescript 开发业务逻辑
  • Cocos2d-js:2D 优秀开发引擎,同样使用图形化工具制作游戏,操作方便。 核心使用 JavaScript 编写

尾声

在对比了Java和Javascript开发GUI和图像处理的能力后,我基本确立以后前端的技术路线。以后,用户界面开发,我基本摒弃Java了,什么Swing/SWT,什么JavaFX,统统和它们告别了。为什么?精力不够,web是主流,Vue/React外面套个Electron,基本能对付大部分需求了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/176464.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2、IDEA的卸载与安装

文章目录2、IDEA的卸载与安装2.1 卸载过程2.2 安装前的准备2.3 安装过程2.4注册过程方式一:免费试用30天方式二:官网购买方式三:教育使用2.5 闪退问题【尚硅谷】idea实战教程-讲师:宋红康 生活是属于每个人自己的感受,…

3.1 卷积神经网络的应用领域|卷积的作用|卷积特征值的计算方法|得到特征图表示|步长与卷积核大小对结果的影响|边缘填充方法

文章目录卷积神经网络的应用领域卷积的作用卷积特征值的计算方法得到特征图表示步长与卷积核大小对结果的影响边缘填充方法卷积神经网络的应用领域 检测任务分类与检索超分辨率重构医学任务无人驾驶NVIDIA Tegra X1(显卡 GPU) 卷积的作用 卷积神经网络…

产品设计-基础控件-信息输出控件

产品设计-基础控件-信息输出控件1.1 走马灯1.1.1 图片轮播样式1.1.2 文字轮播样式1.2 折叠面板1.3 时间轴与步骤条1.3.1 时间轴1.3.2 步骤条1.4标签和徽标1.4.1 标签和徽标1.4.2 徽标1.5 面包屑与查询器1.5.1 面包屑1.5.2 查询器1.6 列表页与详情页1.6.1 列表页1.6.2 详情页1.7…

【实操案例十】函数操作 实例代码及运行效果图!

任务一:Mini计算器 # 任务一:Mini计算器 def calc(a, b, op):if op :return add(a, b)elif op -:return sub(a, b)elif op *:return mul(a, b)elif op /:if b ! 0:return div(a, b)else:return 0不能为除数!def add(a, b):return a bde…

这种银行病毒是2022年12月的头号恶意软件

到 2022 年,全球网络攻击同比增长 38%,并且是由更小、更灵活的黑客和勒索软件团伙驱动的。 根据一份报告,全球网络攻击数量在第四季度达到历史新高,平均每个组织每周发生 1,168 次攻击。 现在,一份新报告列出了上个月…

【iMessage苹果推】iOS 当地推送(Local Push) 安装OS CSR文件尽可能多地使每个证书区分开

推荐内容IMESSGAE相关 作者✈️IMEAX推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容3.日历推 *** …

长短期记忆(LSTM)详解

入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。 ✨完整代码在我的github上,有需要的朋友可以康康✨ ​​​​​​https://github.com/tt-s-t/Deep-Learning.git 目录 一…

【C语言进阶】指针进阶(干货)

目录 一、字符指针 二、指针数组 三、数组指针 1、数组指针的定义 2、&数组名和数组名的区别 3、数组指针的使用 四、数组传参和指针传参 1、一维数组传参 2、一级指针传参 3、二维数组传参 4、二级指针传参 五、函数指针 1、函数指针的定义 2、函数指针的使用 六、…

论文阅读:《Collision Avoidance Testing of the Waymo Automated Driving System》

文章目录1 背景2 方法2.1 Overview2.2 安全测试目标2.2.1 测试目标设定方法(Method to Set the Test Objective)2.2.2 测试目标度量方法(Metrics to Measure the Test Objectives)2.3 基于潜在危机情况的测试场景(Test…

17种编程语言实现排序算法-希尔排序

开源地址 https://gitee.com/lblbc/simple-works/tree/master/sort/ 覆盖语言:C、C、C#、Java、Kotlin、Dart、Go、JavaScript(JS)、TypeScript(TS)、ArkTS、swift、PHP。 覆盖平台:安卓(Java、Kotlin)、iOS(SwiftUI)、Flutter(Dart)、Window桌面(C#)、…

Unity HurricaneVR 插件中的 VRIK 设置

IK(反向动力学)有利于提升 VR 应用中的沉浸感,比如我们可以通过对手部的追踪,再结合 IK,来模拟 VR 中人物的手臂和手肘的姿态。 Final IK 是 Unity 一款功能强大的 IK 插件,其中拥有适用于 VR 的 IK 功能&…

基于微信小程序的自驾游拼团小程序

文末联系获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器…

逻辑陷阱型蜜罐合约

蜜罐是传统安全领域中的一个概念,通常指安全人员设置一些陷阱(比较明显的漏洞),让攻击者自己掉入我们设置好的陷阱中,以便安全人员分析攻击者的作恶手法。蜜罐合约(HoneyPots Contract)也是类似…

pandarallel 是一个简单而有效的工具,可以在所有可用的 CPUs 上并行执行 pandas 操作

文章目录 一、简介二、特点三、用户指南CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、简介 官方文档地址:https://nalepae.github.io/pandarallel/ Github 链接:https://github.com/nalepae/pandarallel pandarallel 是一个简单而有效的工具,可以在所有可用的 CPU…

06 |「栈和队列」简析

前言 前言:研究一个数据结构的时候,首先讲的是增删改查。 文章目录前言一、简介1. 结构2. 特点3. 存储二、栈1. 类比举例2. 操作3. 实现1)顺序栈(常用)a. 核心b. 要素c. 入栈d. 出栈2)链式栈三、队列1. 类比…

【手写 Vue2.x 源码】第四十篇 - 组件部分 - 组件的生命周期

一,前言 上篇,介绍了组件部分-组件的编译,主要涉及以下几部分: 组件编译流程介绍:html->render->vnode创建组件虚拟节点:createComponent 本篇,组件部分-组件的生命周期; 二…

logstash + logback实现分布式日志采集

😊 作者: 一恍过去💖 主页: https://blog.csdn.net/zhuocailing3390🎊 社区: Java技术栈交流🎉 主题: logstash logback实现分布式日志采集⏱️ 创作时间: 2023年1…

Logback基本使用

文章目录Logback的使用1. logback入门2. logback 配置3. logback-access的使用Logback的使用 Logback是由log4j创始人设计的另一个开源日志组件,性能比log4j要好官方网站:https://logback.qos.ch/index.htmlLogback主要分为三个模块: logbac…

基于高通平台的dToF Sensor开机点亮教程

作为一个优秀的驱动工程师,迅速点亮目前市面上的Soc平台是非常必须的。如果你花费了很多时间无法Set up起平台,那你这驱动开发可能还有待提升,特别如今这市场,想要更高更强,驱动开发变得吃香了。一般圈子里的朋友,驱动开发都是大杀四方,比如高通平台,全志平台,MTK平台…

【Python】司徒卢威函数

文章目录简介图像其他相关函数简介 最开始看到这个名字,我也很激动,终于有个中文姓氏的数学公式了,然鹅司徒卢威是个俄国人,而且司徒卢威完全是音译,就离谱。 司徒卢威函数是下面的非齐次贝赛尔方程的一组解&#xf…