2011-08-25 246 views
0

我使用HTML5 canvas元素編寫了一個繪畫應用程序。放大和縮小畫布

現在我想讓用戶在繪畫時放大和縮小選項。

我該怎麼做?

+0

您是如何實施塗料應用程序的?你有什麼數據可以用更大或更小的縮放重畫畫布?如果你想要做的就是讓現有的像素更大,然後用CSS進行縮放。 – robertc

回答

2

有幾種方法。這真的取決於你在找什麼。

您可以通過縮放整個上下文來完成,如ctx.scale(2,2),然後在這個較大的範圍內重新繪製所有內容。一些繪製的東西,如路徑和文本,將會優雅地縮放。要做到這一點,您需要對迄今爲止繪製的所有內容保持良好的跟蹤。

另一種方法是將整個畫布拉回自己。這需要一個臨時畫布,因爲該操作實際上是:繪製到臨時畫布,清除主畫面,回到主縮放畫面。

另一種方法是使用CSS變換來僅縮放畫布本身,這會使圖像模糊(縮放!),但不需要更改畫布上已有的任何像素。

+1

只是想在每次轉換(例如縮放)後添加新的情況是默認情況。我的意思是在設置'(2,2)'後設置'ctx.scale(0.5,0.5)'實際上會做'(2 * 0.5,2 * 0.5)',因此設置爲'( 2,2)'然後到'(0.5,0.5)'不會減少實際的畫布與最初的畫布相比,而是將其重新設置爲以前的大小。 – pimvdb