Skip to content

Instantly share code, notes, and snippets.

@kjunichi
Created September 14, 2012 06:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kjunichi/3720160 to your computer and use it in GitHub Desktop.
Save kjunichi/3720160 to your computer and use it in GitHub Desktop.
魚眼レンズ風に画像変換する
function genFishEyePicture(srcImageData) {
//
var width = srcImageData.width;
var height = srcImageData.height;
var kk=width*0.5;
var ll=height*0.5;
var destImageData = ctx.createImageData(width,height);
console.log(destImageData.width+","+destImageData.height);
for(var y = 0; y < height; y++) {
for(var x = 0; x < width; x++) {
targetPixel = (width*y+x)*4;
var dx=(x-kk);
var dy=(y-ll);
var aa=Math.atan2(dy,dx);
var rr=hypot(dy,dx);
var rs=rr*rr/hypot(kk,ll);
var px=Math.floor(kk+rs*Math.cos(aa));
var py=Math.floor(ll+rs*Math.sin(aa));
//console.log(px+","+py);
destPixel = (width*py+px)*4;
/*
destImageData.data[destPixel+0] = srcImageData.data[targetPixel+0];
destImageData.data[destPixel+1] = srcImageData.data[targetPixel+1];
destImageData.data[destPixel+2] = srcImageData.data[targetPixel+2];
destImageData.data[destPixel+3] = srcImageData.data[targetPixel+3];
*/
destImageData.data[targetPixel+0] = srcImageData.data[destPixel+0];
destImageData.data[targetPixel+1] = srcImageData.data[destPixel+1];
destImageData.data[targetPixel+2] = srcImageData.data[destPixel+2];
destImageData.data[targetPixel+3] = srcImageData.data[destPixel+3];
}
}
var destCs = document.createElement('canvas');
destCs.width = width;
destCs.height = height;
ctx = destCs.getContext('2d');
ctx.putImageData(destImageData,0,0);
document.body.appendChild(destCs);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment