Java 后端绘图有什么比较节省内存的方法吗?

2020-04-26 17:08:50 +08:00
 ShutTheFu2kUP
之前就是因为有内存占用过高的问题改成后端,但是现在又有需求在后端画,不知道有没有啥节省内存的三方库等等。
3058 次点击
所在节点    Java
21 条回复
guyeu
2020-04-26 17:36:38 +08:00
诡异的需求。。
mseasons
2020-04-26 17:37:23 +08:00
需求很模糊啊,什么样的绘图,前端传一定的参数,后端返回一个图片这样子的吗?

节省内存就限制并发的画图数量吧?
dcalsky
2020-04-26 17:37:51 +08:00
python 用 pillow node 用 node-canvas java 无解
ShutTheFu2kUP
2020-04-26 17:57:23 +08:00
@guyeu 后端处理数据,某些符合要求的数据需要生成一张图片,需求没说清楚确实挺奇怪的..
ShutTheFu2kUP
2020-04-26 17:58:47 +08:00
@mseasons 跟前端无关,如果是前端传过来的参数直接让前端 canvas 画就行了,关键就是这些数据是要后端批量处理的...
ShutTheFu2kUP
2020-04-26 17:59:02 +08:00
@dcalsky 行吧😂
gz911122
2020-04-26 18:05:53 +08:00
如果只是把数据填到图上的话可以用 svg, 当做 xml 替换文本就行了
内存占用少得多.
ShutTheFu2kUP
2020-04-26 18:21:51 +08:00
@gz911122 确实是把数据填到图上,谢谢大佬,我去试试
xcstream
2020-04-26 18:29:29 +08:00
c++扩展 重复使用内存
ShutTheFu2kUP
2020-04-26 18:37:46 +08:00
@xcstream C 艹忘的差不多了,重新看开发周期来不及😂
guyeu
2020-04-27 10:36:35 +08:00
说需求诡异是因为这个图片如果最终给前端展示,那么由前端根据数据生成图片即可。。为什么一定要后端生成图片呢。。
a1438861827
2020-04-27 11:11:31 +08:00
大概是因为有的数据不想直接给前端了
a1438861827
2020-04-27 11:14:03 +08:00
例如我们有些历史记录的数据需要做成折线图,但是不方便直接将数据给前端生成折线图,所以得在后端生成个图片给前端。暂时没有想到好解决的办法
iminto
2020-04-27 11:32:44 +08:00
ImageMagick for java
ShutTheFu2kUP
2020-04-27 18:45:02 +08:00
@guyeu 不是给前端的,是要上传到 OSS,然后需要的时候用下载的
ShutTheFu2kUP
2020-04-27 18:45:29 +08:00
@iminto 好的,我回去搜看看
ShutTheFu2kUP
2020-04-27 18:46:34 +08:00
@a1438861827 不是不想给前端,是这个需求就是要后端处理完上传到 OSS,然后有需求的人员自己下载
guyeu
2020-04-27 22:28:32 +08:00
@ShutTheFu2kUP #15 哦哦 那么估计就是这个教程了。。你没有说要画什么图,所以只能提供比较通用的方案。。https://docs.oracle.com/javase/tutorial/2d/images/drawonimage.html
ShutTheFu2kUP
2020-04-27 23:57:33 +08:00
@guyeu BuffetedImage 我已经会用了,就是这个内存占用和 CPU 占用比较高,总之谢谢啦😂
gz911122
2020-04-28 09:53:44 +08:00
@ShutTheFu2kUP svg 的方案可行吗
对于你这个业务

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/666335

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX