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

qq_39816004 2018-05-25 05:03:09


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

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

左侧的图案是150*150组合的精灵图,请教大佬们,有没有方法实现,把生成的图片放大到指定的尺寸,而保持图片不失真。
...全文
1002 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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上面就要多画一些像素点了。

87,883

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧