如何正确缩放到画布?

时间:2013-04-29 14:26:31

标签: java gwt canvas

当我应用canvas.getContext2d().scale(1.5, 1.5)时,画布中的对象会按预期变大,但会模糊不清。

我需要做些什么才能让画布在不缩放时将我的对象绘制为锐利?

2 个答案:

答案 0 :(得分:1)

使用抗锯齿渲染提示:

   Graphics2D g2 = (Graphics2D) g;
   g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

因此,当你扩展时,它看起来会更好。

右边的图像使用RenderingHints.VALUE_ANTIALIAS_ON enter image description here

答案 1 :(得分:0)

我发现Canvas有ctx.transform()ctx.scale()种方法。哪个工作正常,但由于它们的行为就像只是缩放图像一样,结果并不明显。猜猜是因为(反)唉等等。

所以我决定重写我的所有ctx.draw()方法以尊重GLOBAL_OFFSET,这会在用户放大和缩小时更改值。这样,画布对象可以保持其原始坐标点值,但是尊重缩放级别和偏移可以将它们绘制得更大或更薄,这种“模拟”缩放和平移。