求助,求大神解决图片放大保持清晰度的问题

qq_39816004 2018-05-25 05:03:09


需求是选择左侧的图案和颜色以及输入文字,右边显示合成的图案。点击下面的按钮让用户输入邮箱地址,把右侧生成的图案通过附件发送给用户。要求附件大小是2000*2000以上超大图。

目前我用canvas实现的,点击左侧选项的时候用canvas在右侧绘图,提交的时候用canvas生成图片发送给后台,用php发送邮件给用户。问题在于生成图片再放大到要求的尺寸后,图片变得非常模糊。

左侧的图案是150*150组合的精灵图,请教大佬们,有没有方法实现,把生成的图片放大到指定的尺寸,而保持图片不失真。
...全文
976 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
LiZhaoTing12 2018-05-28
  • 打赏
  • 举报
回复
最简单有效的办法是把图片转成svg,有很多工具可以转的
Hello World, 2018-05-26
  • 打赏
  • 举报
回复
前端用小图,操作起来速度快,记录各个图的大小及位置,后端用大图生成。 你可以看看在线印刷订制的网站思路
qq_39816004 2018-05-25
  • 打赏
  • 举报
回复
引用 2 楼 functionsub 的回复:
想了下,好像不用那么麻烦,你直接把你原图画到2000*2000的canvas上,然后把每个有颜色的像素点的颜色都重新画一下。 因为就算模糊的话,对应点也是有颜色的,只是有的深有的浅,你要做的就是把每个点都设置成选的颜色。
我试过了,把生成的图片比如200*150,画到2000*1500的canvas上,得到的图片效果跟直接放大这张200*150的图片一样,非常模糊。
qq_39816004 2018-05-25
  • 打赏
  • 举报
回复
引用 1 楼 functionsub 的回复:
直接原图片放大肯定不行了。 如果图片上的颜色单一,或许还有办法解决。 就是通过重新画一个2000*2000的图片,原始150*150的把每个点的颜色分别画上去,当然涉及到一些倍数的计算。 比如原来[0,0]上的颜色,映射到2000*2000上面就要多画一些像素点了。
引用 1 楼 functionsub 的回复:
直接原图片放大肯定不行了。 如果图片上的颜色单一,或许还有办法解决。 就是通过重新画一个2000*2000的图片,原始150*150的把每个点的颜色分别画上去,当然涉及到一些倍数的计算。 比如原来[0,0]上的颜色,映射到2000*2000上面就要多画一些像素点了。
我试过了,把生成的图片比如200*150,画到2000*1500的canvas上,得到的图片效果跟直接放大这张200*150的图片一样,非常模糊。
functionsub 2018-05-25
  • 打赏
  • 举报
回复
想了下,好像不用那么麻烦,你直接把你原图画到2000*2000的canvas上,然后把每个有颜色的像素点的颜色都重新画一下。 因为就算模糊的话,对应点也是有颜色的,只是有的深有的浅,你要做的就是把每个点都设置成选的颜色。
functionsub 2018-05-25
  • 打赏
  • 举报
回复
直接原图片放大肯定不行了。 如果图片上的颜色单一,或许还有办法解决。 就是通过重新画一个2000*2000的图片,原始150*150的把每个点的颜色分别画上去,当然涉及到一些倍数的计算。 比如原来[0,0]上的颜色,映射到2000*2000上面就要多画一些像素点了。
相关推荐

本课程是一门具有很强实践性质的“项目实战”课程,即“企业中台系统实战”,其中主要包含三大块核心内容,如下图所示(右键可以在新标签页中打开图片放大查看):


即主要包含以下三大块内容:
企业内部应用系统菜单资源和操作权限的统一管理;

② 分布式应用系统通信时的统一授权,即基于AccessToken的授权与认证;

③ 分布式服务/系统通信时的两大方式(基于dubbo rpc协议和基于http协议的restful api实战)。

 

值得一提的是,这套中台系统由于讲解了如何统一管理企业内部各大应用系统的“菜单资源列表”、“操作权限”,故而本门课程的“代码实战”是建立在之前debug录制的“企业权限管理平台”这套课程的基础之上的,故而在这里debug建议没有项目开发基础的小伙伴可以先去学习我的那套“企业权限管理平台”的实战课程,之后再来学习我的这套中台系统的实战才不会很吃力(课程链接:)

 

本课程的课程大纲如下图所示(右键可以在新标签页中打开图片放大查看)

 

除此之外,这套“中台系统”由于统一管理了企业内部各大应用系统的“菜单资源和操作权限”以及“应用系统之间通信时的统一授权”,故而难免需要涉及到“中台系统”与“中台子系统”、“中台子系统”与“中台子系统”之间的通信(即分布式服务之间的通信),在这里我们是采用“dubbo + zookeeper”的方式加以落地实现的,详情如下图所示(右键可以在新标签页中打开图片放大查看)

 

而众所周知,作为一款知名以及相当流行的分布式服务调度中间件,dubbo现如今已经晋升为Apache顶级的开源项目,未来也仍将成为“分布式系统”开发实战的一大利器,如下图所示为dubbo底层核心系统架构图(右键可以在新标签页中打开图片放大查看)

而在这门“中台系统实战”的课程中,我们也将始终贯彻、落地dubbo的这一核心系统架构图,即如何将中台系统开发的服务注册/发布到注册中心zookeeper,中台子系统如何订阅/消费/调度中台系统发布在zookeeper的接口服务,中台子系统在走http协议调度通信时dubbo如何进行拦截、基于token认证接口的调用者等等,这些内容我们在课程中将一一得到代码层面的实战落地!

 

下图为本课程中涉及到的分布式系统/服务之间 采用“http协议restful api”方式通信时的Token授权、认证的流程图(右键可以在新标签页中打开图片放大查看):

而不夸张地说,基于AccessToken的授权、认证方式在现如今微服务、分布式时代系统与系统在通信期间最为常用的“授权方式”了,可想而知,掌握其中的流程思想是多么的重要!

 

以下为本门课程的部分截图(右键可以在新标签页中打开图片放大查看)

 

 


核心技术列表

值得一提的是,由于本门课程是一门真正介绍“中台思想”以及将“中台思想”和“分布式系统开发实战”相结合落地的课程,故而在学完本门课程之后,可以掌握到的核心技术自然是相当多的。主要由SpringBoot2.0SpringMVCMybatisDubboZooKeeperRedisOkHttp3Guava-Retrying重试机制、JWT(Json Web Token)Shiro、分布式集群session共享、LombokStream APIDubbo-Filter以及ServiceBean等等。如下图所示(右键可以在新标签页中打开图片放大查看)


发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2018-05-25 05:03
社区公告
暂无公告