canvas回転写真(javascript)
1613 ワード
最近はプロジェクトの中でcanvasで画像を回転させる必要がありますが、この点も最初は分かりませんでした.多くの資料を探してやっとこの問題を解決しました.主に三つの関数を使いました.tranlate、rotate、drawImage.
トレイ(x,y):移動画布座標システム、xとyは水平と垂直方向のオフセット量を表します.
rotate(reg):画像を回転させ、regは回転の度数を表します.例えば、Math.PI/4は45と表します.
drawImage(source,sx,sy,sh,sw,dx,dh,dh,dw):画像をキャンバスに載せる.sourceで表されるピクチャのオブジェクトは、sxとsyは、ピクチャの円点からのオフセット量を表し、shとswは、ロードピクチャの長さと幅を表します.
dxとdy:キャンバス原点からのオフセット量、dhとdw:キャンバス幅と高さを利用します.
今は写真を回転して時計回りに回転します.
まずHTMLの上にcanvas要素を追加します.
そしてjavascriptでこのcanvasを取得する必要があります.
var canvasObj=document.getElementById(「test」)
次はcanvasの環境に戻ります.
var cxt=canvasObj.getConttext("2 d")//2 dは二次元で表しています.
私たちはこのキャンバスに回転センターを設定します.でも、このところは重点的に言ってください.写真は普通長方形です.キャンバスも長方形にしたら.回転中に一部の写真が切り取られます.したがって、画像が長方形の場合、まず画像の最大サイズの端にキャンバスの長さと幅を設定します.たとえば一枚の写真は200*100です.私たちのキャンバスは200*200でなければなりません.このように回転すると、切断されません.
中心点を設けるということは、上で述べたtranlate方法で、xとyを正方形の中心点に設定します.例えば200*200のキャンバスは中心点が100*100です.
cxt.translate(100,100)
センターを設置したら、キャンバスを回転させたいです.
cxt.rotate((2*Math.PI)/*4)//90度回転
そして私たちは写真オブジェクトを追加します.
var img=new Image()
img.src=「baidujgylogo 3.gif」
img.οnlοad=function(){
cxt.drawImage(this、-100、-100)、/-100とtranslateの順方向100は、互いに相殺され、画像の原点と画布の原点を重ね合わせます.
}
このようにして写真の回転機能を完成します.
コード:
トレイ(x,y):移動画布座標システム、xとyは水平と垂直方向のオフセット量を表します.
rotate(reg):画像を回転させ、regは回転の度数を表します.例えば、Math.PI/4は45と表します.
drawImage(source,sx,sy,sh,sw,dx,dh,dh,dw):画像をキャンバスに載せる.sourceで表されるピクチャのオブジェクトは、sxとsyは、ピクチャの円点からのオフセット量を表し、shとswは、ロードピクチャの長さと幅を表します.
dxとdy:キャンバス原点からのオフセット量、dhとdw:キャンバス幅と高さを利用します.
今は写真を回転して時計回りに回転します.
まずHTMLの上にcanvas要素を追加します.
そしてjavascriptでこのcanvasを取得する必要があります.
var canvasObj=document.getElementById(「test」)
次はcanvasの環境に戻ります.
var cxt=canvasObj.getConttext("2 d")//2 dは二次元で表しています.
私たちはこのキャンバスに回転センターを設定します.でも、このところは重点的に言ってください.写真は普通長方形です.キャンバスも長方形にしたら.回転中に一部の写真が切り取られます.したがって、画像が長方形の場合、まず画像の最大サイズの端にキャンバスの長さと幅を設定します.たとえば一枚の写真は200*100です.私たちのキャンバスは200*200でなければなりません.このように回転すると、切断されません.
中心点を設けるということは、上で述べたtranlate方法で、xとyを正方形の中心点に設定します.例えば200*200のキャンバスは中心点が100*100です.
cxt.translate(100,100)
センターを設置したら、キャンバスを回転させたいです.
cxt.rotate((2*Math.PI)/*4)//90度回転
そして私たちは写真オブジェクトを追加します.
var img=new Image()
img.src=「baidujgylogo 3.gif」
img.οnlοad=function(){
cxt.drawImage(this、-100、-100)、/-100とtranslateの順方向100は、互いに相殺され、画像の原点と画布の原点を重ね合わせます.
}
このようにして写真の回転機能を完成します.
コード:
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
cxt.translate(58,58);
cxt.rotate(2*(Math.PI/2));
var img=new Image();
img.src="baidu_jgylogo3.gif";
img.οnlοad=function(){
cxt.drawImage(img,-58,-58);
cxt.save();
}