nl_tokens: Transform canvas coordination according to specified frame size and orientation Orientation value is from EXIF tag
pl_tokens: function _rotateToOrientaion ( img , orientation ) { var RADIANS = Math . PI / 180 ; var canvas = document . createElement ( 'canvas' ) ; var ctx = canvas . getContext ( '2d' ) ; var width = img . width ; var height = img . height ; if ( Basic . inArray ( orientation , [ 5 , 6 , 7 , 8 ] ) > - 1 ) { canvas . width = height ; canvas . height = width ; } else { canvas . width = width ; canvas . height = height ; } /**
  			1 = The 0th row is at the visual top of the image, and the 0th column is the visual left-hand side.
  			2 = The 0th row is at the visual top of the image, and the 0th column is the visual right-hand side.
  			3 = The 0th row is at the visual bottom of the image, and the 0th column is the visual right-hand side.
  			4 = The 0th row is at the visual bottom of the image, and the 0th column is the visual left-hand side.
  			5 = The 0th row is the visual left-hand side of the image, and the 0th column is the visual top.
  			6 = The 0th row is the visual right-hand side of the image, and the 0th column is the visual top.
  			7 = The 0th row is the visual right-hand side of the image, and the 0th column is the visual bottom.
  			8 = The 0th row is the visual left-hand side of the image, and the 0th column is the visual bottom.
  			*/ switch ( orientation ) { case 2 : // horizontal flip ctx . translate ( width , 0 ) ; ctx . scale ( - 1 , 1 ) ; break ; case 3 : // 180 rotate left ctx . translate ( width , <mask> ) ; ctx . rotate ( 180 * RADIANS ) ; break ; case 4 : // vertical flip ctx . translate ( 0 , height ) ; ctx . scale ( 1 , - 1 ) ; break ; case 5 : // vertical flip + 90 rotate right ctx . rotate ( 90 * RADIANS ) ; ctx . scale ( 1 , - 1 ) ; break ; case 6 : // 90 rotate right ctx . rotate ( 90 * RADIANS ) ; ctx . translate ( 0 , - height ) ; break ; case 7 : // horizontal flip + 90 rotate right ctx . rotate ( 90 * RADIANS ) ; ctx . translate ( width , - height ) ; ctx . scale ( - 1 , 1 ) ; break ; case 8 : // 90 rotate left ctx . rotate ( - 90 * RADIANS ) ; ctx . translate ( - width , 0 ) ; break ; } ctx . drawImage ( img , 0 , 0 , width , height ) ; return canvas ; }