【发布时间】:2015-06-06 14:09:42
【问题描述】:
无论源图像大小如何,如何使用drawImage() 在300px X 380px 画布上输出全尺寸图像?
例子:
1). 如果有75px X 95px 的图像,我希望能够将其绘制为适合300px X 380px 画布。
2). 如果有1500px X 1900px 的图像,我希望能够将其绘制为适合300px X 380px 画布。
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var img=document.getElementById("myPic");
ctx.drawImage(img,10,10);
有哪些选项可以防止任何质量损失?
【问题讨论】:
-
要填满整个 300 * 300 的区域吗?
-
这是您的想法吗? stackoverflow.com/questions/21961839/…(这会填满整个画布,而不仅仅是缩放图像以适应里面..)
-
@KenFyrstenberg:不完全是。在我的情况下,我允许用户上传图像,然后我将使用上述解决方案来缩放图像并将其绘制到画布上。提交后,我计划生成一个 pdf。我的问题是,如果用户使用移动设备访问网站并上传图像,我如何保持 pdf 上的图像质量? (假设pdf页面宽度为840px,上传图片区域占位符为300px)
-
@Beki 300x380 像素的画布不允许您这样做。您必须根据 PDF 中的 DPI 设置合适的画布大小,然后使用 CSS 缩小页面中的画布以适应屏幕。我可以做出显示所有这些部分的答案。
-
@KenFyrstenberg:如果你能做到这一点,那就太棒了!!
标签: javascript html canvas