[javascript] Me-rotasi gambar menggunakan elemen canvas

21 07 2008

Element CANVAS atau tag canvas di keluarga HTML bisa di katakan anggota baru, berguna untuk menggambar grafik menggunakan javascript.

Tag <canvas> mendefinisikan grafik seperti graph atau image.

Pada postingan berikut ini akan menjelaskan tentang bagaimana menggunakan element canvas untuk merotasi sebuah gambar, rotasi pada 90, 180, -90, dan kembali ke 0.

Contoh nya :

rotate:

Dan berikut ini script lengkap nya :

rotasi.js

if(document.getElementById(‘canvas’)) {
/*
Ok!: Firefox 2, Safari 3, Opera 9.5b2
No: Opera 9.27
*/

var image = document.getElementById(‘image’);
var canvas = document.getElementById(‘canvas’);
var canvasContext = canvas.getContext(‘2d’);

switch(p_deg) {
default :
case 0 :
canvas.setAttribute(‘width’, image.width);
canvas.setAttribute(‘height’, image.height);
canvasContext.rotate(p_deg * Math.PI / 180);
canvasContext.drawImage(image, 0, 0);
break;
case 90 :
canvas.setAttribute(‘width’, image.height);
canvas.setAttribute(‘height’, image.width);
canvasContext.rotate(p_deg * Math.PI / 180);
canvasContext.drawImage(image, 0, -image.height);
break;
case 180 :
canvas.setAttribute(‘width’, image.width);
canvas.setAttribute(‘height’, image.height);
canvasContext.rotate(p_deg * Math.PI / 180);
canvasContext.drawImage(image, -image.width, -image.height);
break;
case 270 :
case -90 :
canvas.setAttribute(‘width’, image.height);
canvas.setAttribute(‘height’, image.width);
canvasContext.rotate(p_deg * Math.PI / 180);
canvasContext.drawImage(image, -image.width, 0);
break;
};

} else {
/*
Ok!: MSIE 6 et 7
*/

var image = document.getElementById(‘image’);
switch(p_deg) {
default :
case 0 :
image.style.filter = ‘progid:DXImageTransform.Microsoft.BasicImage(rotation=0)’;
break;
case 90 :
image.style.filter = ‘progid:DXImageTransform.Microsoft.BasicImage(rotation=1)’;
break;
case 180 :
image.style.filter = ‘progid:DXImageTransform.Microsoft.BasicImage(rotation=2)’;
break;
case 270 :
case -90 :
image.style.filter = ‘progid:DXImageTransform.Microsoft.BasicImage(rotation=3)’;
break;
};

};
};

// Multiple onload function created by: Simon Willison
// http://simonwillison.net/2004/May/26/addLoadEvent/
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != ‘function’) {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}

addLoadEvent(function() {
var image = document.getElementById(‘image’);
var canvas = document.getElementById(‘canvas’);
if(canvas.getContext) {
image.style.visibility = ‘hidden’;
image.style.position = ‘absolute’;
} else {
canvas.parentNode.removeChild(canvas);
};

rotate(0);
});

html nya :

<script type="text/javascript" src="rotate.js"></script>

<p>
rotate:
<input type="button" value="0°" onclick="rotate(0);">
<input type="button" value="90°" onclick="rotate(90);">
<input type="button" value="180°" onclick="rotate(180);">
<input type="button" value="-90°" onclick="rotate(-90);">
</p>
<p>
<img id="image" src="images/wanitapeace.jpg" alt="">
<canvas id="canvas"></canvas>
</p>

Refrensi :

http://www.w3schools.com/

http://javascript.internet.com/


Artikel yang berhubungan:
  1. Menambah Javascript pada Javascript Suatu ketika ketika saya sedang ngoding web, saya menghadapi keadaan...
  2. [Javascript] Validasi dalam javascript Awalnya saya bingung bagaimana melakukan proses validasi suatu radio button...
  3. Mendapatkan value dari Window pop up pada HTML Berikut ini tips untuk mendapatkan nilai dari window pop up,...
  4. [Delphi] Virtual Key Codes Virtual Key Codes adalah kode hexa pada kibor ketika di...
  5. [Javascript] Multiple Dimensional Arrays Pokok ulasan yang kan di bahas kali ini adalah javascript...


Actions

Informations

Leave a comment

You can use these tags : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>