2012-08-08 159 views
3

当我使用canvasdrawImage方法缩放大图像时,结果远非完美。用画布缩放大图像。平滑

将该图片与这张照片比较。其中一个实际上是缩放图像的画布,右图是一个理想的结果。这张图片的原始图片是1600x900照片。比例从原始大小变为200x113。

当原始图像的宽度和高度较小或缩放比例较大(即0.5 - 0.9)时,则一切正常。但我需要让我的用户能够调整大图像并制作出精美的缩略图。

我试图用多个小步骤(例如1600px - > 1000px - > 500px - > 200px)缩放图像,结果更好,但对性能非常不利,所以我拒绝了这一点。

如果现在使用HTML5和canvas实现我的目标是不可能的,那么未来有没有可能呢?我只是在考虑是否应该拒绝HTML5技术,并在ActionScript上进行上传或继续尝试(或等待)使用HTML5来做到这一点?我喜欢HTML5,实际上我不想离开这样友好的技术。

canvas with scaled image (left) and desirable result

+1

相关问题:http://stackoverflow.com/questions/2303690/resizing-an-image-in-an-html5-canvas – 2012-08-08 16:39:48

回答

1

左图像被按比例缩小使用重新采样或内插的更原始的形式。这可能完全取决于浏览器的渲染引擎如何缩放图像,结果因浏览器而异。

如果是一个选项,您可以完全控制生成的图像质量的一种方法是上传图像,在服务器上缩放图像,然后将其下载回客户端。

另一种方法是使用JS库在客户端重新采样图像。不确定这是多么实际。