HTML <canvas> Tag
Pembahasan kali ini bukan tentang "next tutorial MontageJS", tapi akan lebih mengenal attribute dari HTML5, salah satunya HTML <canvas> Tag .
Tag <canvas> merupakan fitur atau atribut terbaru yang ditawarkan HTML5 yang digunakan untuk menggambar grafik , dan dapat kita dukung dengan script biasanya Javascript, agar canvas yang kita buat benar-benar bisa menarik/menggambar grafis. Itu disebabkan karena Tag <canvas> hanya merupakan sebuah wadah untuk grafis.
Nah, contoh function script-nya yaitu getContext ( ) method yaitu untul mengembalikan sebuah objek yang menyediakan metode dan properti untuk menggambar di kanvas .
Method ini mencakup sifat-sifat dan mengambil objek 2 dimensi , yang dapat digunakan untuk menggambar teks , garis , kotak , lingkaran , dan banyak lagi - di kanvas .
Berikut properti yang dapat digunakan bersamaan dengan tag <canvas> :
Colors, Styles, and Shadows
Property
Description
fillStyle
Sets or returns the color, gradient, or pattern used to fill the drawing
strokeStyle
Sets or returns the color, gradient, or pattern used for strokes
shadowColor
Sets or returns the color to use for shadows
shadowBlur
Sets or returns the blur level for shadows
shadowOffsetX
Sets or returns the horizontal distance of the shadow from the shape
shadowOffsetY
Sets or returns the vertical distance of the shadow from the shape
Line Styles
Property
Description
lineCap
Sets or returns the style of the end caps for a line
lineJoin
Sets or returns the type of corner created, when two lines meet
lineWidth
Sets or returns the current line width
miterLimit
Sets or returns the maximum miter length
Rectangles
Paths
Method
Description
fill()
Fills the current drawing (path)
stroke()
Actually draws the path you have defined
beginPath()
Begins a path, or resets the current path
moveTo()
Moves the path to the specified point in the canvas, without creating a
line
closePath()
Creates a path from the current point back to the starting point
lineTo()
Adds a new point and creates a line from that point to the last
specified point in the canvas
clip()
Clips a region of any shape and size from the original canvas
quadraticCurveTo()
Creates a quadratic Bézier curve
bezierCurveTo()
Creates a cubic Bézier curve
arc()
Creates an arc/curve (used to create circles, or parts of circles)
arcTo()
Creates an arc/curve between two tangents
isPointInPath()
Returns true if the specified point is in the current path, otherwise
false
Transformations
Method
Description
scale()
Scales the current drawing bigger or smaller
rotate()
Rotates the current drawing
translate()
Remaps the (0,0) position on the canvas
transform()
Replaces the current transformation matrix for the drawing
setTransform()
Resets the current transform to the identity matrix. Then runs
transform()
Text
Property
Description
font
Sets or returns the current font properties for text content
textAlign
Sets or returns the current alignment for text content
textBaseline
Sets or returns the current text baseline used when drawing text
Method
Description
fillText()
Draws "filled" text on the canvas
strokeText()
Draws text on the canvas (no fill)
measureText()
Returns an object that contains the width of the specified text
Image Drawing
Method
Description
drawImage()
Draws an image, canvas, or video onto the canvas
Pixel Manipulation
Property
Description
width
Returns the width of an ImageData object
height
Returns the height of an ImageData object
data
Returns an object that contains image data of a specified ImageData
object
Method
Description
createImageData()
Creates a new, blank ImageData object
getImageData()
Returns an ImageData object that copies the pixel data for the specified
rectangle on a canvas
putImageData()
Puts the image data (from a specified ImageData object) back onto the
canvas
Compositing
Property
Description
globalAlpha
Sets or returns the current alpha or transparency value of the drawing
globalCompositeOperation
Sets or returns how a new image are drawn onto an existing image
Other
Method
Description
save()
Saves the state of the current context
restore()
Returns previously saved path state and attributes
Dan ini contoh sederhana dari sebuah <canvas> untuk menggambar sebuah persegi :
Buat file .html kemudian ketikkan code seperti berikut :
Simpan file.html kemudian jalankan, dan berikut tampilannya :
Dan ini contoh kedua dari sebuah <canvas> untuk menggambar seperti aplikasi paint :
Buat file .html baru dan ketikkan code seperti berikut :
Title of Spoiler :
<!DOCTYPE html>
<html>
<body>
<div id="sketch" border=1>
<canvas id="paint"></canvas>
</div>
<script>
var canvas = document.querySelector('#paint');
var ctx = canvas.getContext('2d');
var sketch = document.querySelector('#sketch');
var sketch_style = getComputedStyle(sketch);
canvas.width = parseInt(sketch_style.getPropertyValue('width'));
canvas.height = parseInt(sketch_style.getPropertyValue('height'));
var mouse = {x: 0, y: 0};
/* Mouse Capturing Work */
canvas.addEventListener('mousemove', function(e) {
mouse.x = e.pageX - this.offsetLeft;
mouse.y = e.pageY - this.offsetTop;
}, false);
/* Drawing on Paint App */
ctx.lineWidth = 5;
ctx.lineJoin = 'round';
ctx.lineCap = 'round';
ctx.strokeStyle = 'blue';
canvas.addEventListener('mousedown', function(e) {
ctx.beginPath();
ctx.moveTo(mouse.x, mouse.y);
canvas.addEventListener('mousemove', onPaint, false);
}, false);
canvas.addEventListener('mouseup', function() {
canvas.removeEventListener('mousemove', onPaint, false);
}, false);
var onPaint = function() {
ctx.lineTo(mouse.x, mouse.y);
ctx.stroke();
};
</script>
</body>
</html>
Ini hasilnya hahahaha :3
0 komentar:
Posting Komentar