JS IOS 에서 사진 미리 보기 회전 90 도 BUG 문제 해결
이 문 제 를 해결 하려 면 제3자 JS 라 이브 러 리 를 도입 해 야 합 니 다:exif.js 다운로드 주소:https://github.com/exif-js/exif-js exif.js 를 통 해 우 리 는 사진 의 메타 정 보 를 얻 을 수 있 는데 그 중에서 사진 의 촬영 방향 을 포함한다.
그리고 exif.js 가 제시 한 사진 방향 속성 은 다음 그림 과 같다.
IOS 에서 exif.js 를 통 해 사진 을 찍 은 그림 의 방향 을 얻 고 돌아 오 는 값 은 6 이 며 위의 그림 의 맨 왼쪽 F 의 경우 입 니 다.이것 도 바로 우리 bug 가 있 는 곳 입 니 다.따라서 우 리 는 방향 을 판단 하 는 값 을 통 해 해당 하 는 처 리 를 하고 값 이 6 이면 그림 을 회전 교정 합 니 다.
구체 적 인 코드 는 다음 과 같다.
//
function getPhotoOrientation(img) {
var orient;
EXIF.getData(img, function () {
orient = EXIF.getTag(this, 'Orientation');
});
return orient;
}
다음 에 우 리 는 위의 글 중의 압축 함 수 를 다음 과 같이 수정 할 것 이다.
//
function compress(img, width, height, ratio) {
var canvas, ctx, img64, orient;
//
orient = getPhotoOrientation(img);
canvas = document.createElement('canvas');
canvas.width = width;
canvas.height = height;
ctx = canvas.getContext("2d");
// 6 , ,
if (orient == 6) {
ctx.save();
ctx.translate(width / 2, height / 2);
ctx.rotate(90 * Math.PI / 180);
ctx.drawImage(img, 0 - height / 2, 0 - width / 2, height, width);
ctx.restore();
} else {
ctx.drawImage(img, 0, 0, width, height);
}
img64 = canvas.toDataURL("image/jpeg", ratio);
return img64;
}
OK,문제 해결!이상 의 JS 는 IOS 에서 사진 을 찍 고 90 도 회전 하 는 BUG 를 미리 보 는 문 제 를 해결 하 는 것 이 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 께 참고 가 되 고 많은 응원 부 탁 드 리 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift의 패스트 패스Objective-C를 대체하기 위해 만들어졌지만 Xcode는 Objective-C 런타임 라이브러리를 사용하기 때문에 Swift와 함께 C, C++ 및 Objective-C를 컴파일할 수 있습니다. Xcode는 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.