Поворотное изображение вне экрана.Если вы хотите повернуть изображение вокруг его центра, попробуйте следующее:
function preview_image(event)
{
var fileReader = new FileReader();
fileReader.onload = function (event)
{
var image = new Image();
image.onload=function()
{
var canvas=document.createElement("canvas");
var context=canvas.getContext("2d");
canvas.width=600;
canvas.height=canvas.width*image.height/image.width; /*For Aspect ratio*/
// First move the origin (0,0) to the middle of the canvas
context.translate(canvas.width/2, canvas.height/2)
context.rotate(90 * Math.PI/180); // rotate by 90 degrees
// And also draw the Image centered on the origin
context.drawImage(image, -image.width/2, -image.height/2, image.width/2, image.height/2, 0, 0, canvas.width, canvas.height);
var jpgurl=canvas.toDataURL('image/jpeg', 0.5);
}
};
}
Есть два изменения:
1) Переведите источник перед поворотом холста
context.translate(canvas.width/2, canvas.height/2)
2) Нарисуйте изображение так, чтобы его центр находился сверху начала координат.
context.drawImage(image, -image.width/2, -image.height/2,
image.width/2, image.height/2, 0, 0, canvas.width, canvas.height);
Помните, что холст будет вращаться, а его начало будет в центре.Если вы хотите вернуться назад, вы можете поставить context.save()
перед translate
и context.restore()
после drawImage