가능하지만 권장하지는 않습니다.
모바일에서 오는 이미지를 올바르게 회전 시키려면 먼저 exif 데이터를 가져와야합니다. 그런 다음 파일 형식을 확인하고 ajax를 통해 업로드 할 수있는 형식으로 변환해야합니다.이렇게하려면, 당신은 캔버스 객체의 "toDataURL"를 처리 할 수있는 브라우저가 필요합니다 : 파일을 일단
function supportsToDataURL() {
var c = document.createElement("canvas");
var data = c.toDataURL("image/jpeg");
return (data.indexOf("data:image/jpeg") == 0)
}
, 나는 megapix으로 렌더링하고자 : megapixel library
이미지를 수신 이 같은 온로드 이벤트 :
var img = new Image()
img.onload = function() {
// do some stuff like rendering image to a canvas
}
var mpImg = new MegaPixImage(file);
mpImg.render(img, { quality: 1, maxWidth: 1024 });
당신은 다음 캔버스에 이미지를 작성할 수
var canvas = document.createElement('canvas'),
ctx = canvas.getContext('2d');
canvas.width = sourceWidth;
canvas.height = sourceHeight;
ctx.drawImage(img, 0, 0, sourceWidth, sourceHeight);
var url = canvas.toDataURL();
// or if you want a specific file type
var jpeg = canvas.toDataURL("image/jpeg");
var png = canvas.toDataURL("image/png");
참고 : 일부 버전의 Android는 "toDataURL"을 지원하지만 전체 사양은 지원하지 않을 수 있습니다. 그들은 단지 png 등을 렌더링 할 수 있습니다. 이것은 이미지 렌더링에서 크로스 브라우저 호환성을 얻으려는 많은 문제 중 하나 일뿐입니다.
모바일 웹 앱을위한 이미지 자르기 및 조정 도구를 만드는 데 약 16 시간이 걸렸습니다. 쉬운 일이 아닙니다.
사용자가 파일을 선택하여 base64로 변환하고 아약스를 통해 업로드하도록하는 것이 더 좋은 해결책입니다. 그런 다음 물건을 서버 측으로 변환하고 (필요한 경우) 볼 수있는 사용자에게 다시 보낼 수 있습니다.
모바일 이미지 업로드를 허용하는 플러그인을 만들고 있습니다. 작업이 완료되면 여기에 링크를 넣어 드리겠습니다.
가능하지 않은 경우 HTML5를 사용하고 계신가요? – Mateu
아니요, HTML 5는 그런 종류의 기능을 추가하지 않습니다. – Mikaveli