我正在嘗試在畫布內部放置一個html5圖像。圖像是使用CSS變換屬性翻譯,旋轉和縮放。主要問題是如何複製圖像的屬性並在畫布上將它們應用於。HTML 5畫布 - 旋轉,縮放,翻譯和繪製圖像
您可以嘗試下面的jsfiddle鏈接:可以縮放,移動和旋轉圖像,並且在綠色框中出現的任何圖像都應該與紅色中的相同。
https://jsfiddle.net/q7y1py5f/3/。在這裏,我可以移動和縮放圖像,但是當旋轉開始時沒有任何效果。這裏是代碼的錯誤我(在JavaScript的jsfiddle 58線):
context.save();
context.translate(image.width/2, image.height/2);
context.rotate(angle * Math.PI/180);
context.translate(((-image.width)/2), ((-image.height)/2));
context.translate(-x, -y);
context.scale(scale, scale);
context.drawImage(image, 0, 0);
context.restore();
這裏x和y是綠色容器的左上角和圖像左上角之間的差異。任何幫助,將不勝感激。
我已經設法讓每個屬性單獨工作,但是當它們結合在一起時它不起作用。當我只翻譯和縮放圖像並應用到畫布上下文時,一切都很好,但是當我在圖像中添加旋轉並不是它應該在的位置時。
我嘗試了以下方法 - 用角度計算元素的左上角以獲得正確的值,然後使用它進行平移和旋轉。
一些變化是否有特定的瀏覽器,這不適合你?除非我誤解你所說的話,否則在使用Chrome v49的小提琴中一切正常 - 我可以移動,縮放和旋轉圖像。編輯:當它包含在綠色框中時,我無法移動圖像。 – Shaggy
綠箱中的東西應該出現在紅盒子裏,抱歉誤會。 – electrofly
啊,我的道歉,誤解是我的;我沒有注意到紅色盒子裏發生了什麼。 – Shaggy