fengyuanchen のすばらしい jquery-cropper プラグインを使用しています。
特定の画像がアップロードされたときに回転し、ユーザーに回転させる必要がある右側にないという問題があります。経由で画像をアップロードしajax
ます。rotate is not defined
数時間立ち往生しているというエラーが表示されます。
$('#profilePhoto').on( 'change', function(){
if (this.files && this.files[0]) {
if ( this.files[0].type.match(/^image\//) ) {
var reader = new FileReader();
reader.onload = function(evt) {
var img = new Image();
img.onload = function() {
$("#profileImageContainer").hide();
$("#rotateImg").show();
context.canvas.height = img.height;
context.canvas.width = img.width;
context.drawImage(img, 0, 0);
cropper = canvas.cropper({
aspectRatio: 1 / 1,
rotatable: true,
});
$('#btnCrop').click(function() {
// Get a string base 64 data url
var croppedImageDataURL = canvas.cropper('getCroppedCanvas').toDataURL("image/png");
});
$('#rotateImg').click(function () {
cropper.cropper.rotate(90);
});
};
img.src = evt.target.result;
};
reader.readAsDataURL(this.files[0]);
}
else {
alert("Invalid file type! Please select an image file.");
}
}
else {
alert('No file(s) selected.');
}
});
ここでの主な問題は、cropper 変数を認識していないように見えるため、スコープに関するものです。
ユーザーが写真をアップロードすると、この写真が自動的に回転することがあるため、この問題が表面化します。ユーザーに画像を回転させることなく、最初にこの問題を解決できれば、より良いでしょう