summaryrefslogtreecommitdiff
path: root/fetch.js
blob: c6e0cdbbb5f58dd19b0324714d2df8f7dbaba7fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function getNaturalDimensions (img) {
	if (img.naturalWidth) {
		return { naturalWidth: img.naturalWidth, naturalHeight: img.naturalHeight }
	}
	if (img.videoWidth) {
		return { naturalWidth: img.videoWidth, naturalHeight: img.videoHeight }
	}
	return { naturalWidth: img.width, naturalHeight: img.height }
}
function fromImage (url, cb) {
	var loaded = false
	var img = new Image ()
	img.onload = function(){
		if (loaded) return
		loaded = true
		fromCanvas(img, cb)
	}
	if (img.src == url) { return img.onload() }
	img.src = url
	if (img.complete) { return img.onload() }
}
function fromCanvas (img, cb) {
	var canvas = document.createElement("canvas")
	var ctx = canvas.getContext('2d')
	var dims = getNaturalDimensions(img)
	canvas.width = dims.naturalWidth
	canvas.height = dims.naturalHeight
	ctx.drawImage(img,0,0,dims.naturalWidth,dims.naturalHeight,0,0,canvas.width,canvas.height)
	cb(canvas)
}