What you want is called “perspective warping” and is not available in your own 2D canvas.
You can achieve your effect by drawing vertical stripes 1 pixel wide of your image with corresponding Y offsets.

, , :
y-, :
var yOffsets=[0,1,2,3,4,5,6,5,4,3,2,1,0];
:
var canvas=document.createElement('canvas')
var context=canvas.getContext('2d');
context.drawImage, 1 "" y-:
for(var x=0;x<offsetY.length;x++){
context.drawImage(img,
x,0,1,img.height,
x,offsetY[x],1,img.height
);
}
FabricJS:
var perspectiveImage=new Image();
perspectiveImage.onload=function(){
}
perspectiveImage.src=canvas.toDataURL();