>  기사  >  웹 프론트엔드  >  JavaScript에서 JPEG EXIF ​​회전 데이터에 액세스하는 방법은 무엇입니까?

JavaScript에서 JPEG EXIF ​​회전 데이터에 액세스하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-02 19:15:02701검색

How to Access JPEG EXIF Rotation Data in JavaScript?

브라우저 측 JavaScript에서 JPEG EXIF ​​회전 데이터에 액세스

JPEG 이미지로 작업할 때 캡처된 원래 방향 정보를 보존하는 것이 바람직한 경우가 많습니다. 카메라로. 이 데이터는 JPEG 파일의 EXIF ​​구성 요소에 저장됩니다. JavaScript를 사용하여 클라이언트 측에서 이 데이터에 액세스하려면 다음과 같은 몇 가지 단계를 따르십시오.

  1. JPEG 파일 읽기:

    • FileReader API를 사용하면 로컬 JPEG 파일을 읽거나 이미 이미지 요소()로 로드된 경우 원격 소스에서 검색할 수 있습니다.
  2. EXIF 데이터 구문 분석:

    • 파일을 읽고 나면 결과에서 DataView 개체를 생성하여 EXIF ​​데이터를 추출할 수 있습니다.
    • 다음이 나올 때까지 DataView를 반복합니다. EXIF 헤더(0xFFE1)가 발견되었습니다.
  3. 방향 태그 찾기:

    • EXIF 데이터를 구문 분석하여 방향 태그(0x0112). 태그 값은 필요한 회전을 각도 단위로 나타냅니다.

다음은 이러한 단계를 수행하는 JavaScript 코드 조각의 예입니다.

<code class="javascript">function getOrientation(file, callback) {
    var reader = new FileReader();
    reader.onload = function(e) {
        var view = new DataView(e.target.result);
        var orientation = -1;
        if (view.getUint16(0, false) == 0xFFD8) {
            var length = view.byteLength, offset = 2;
            while (offset < length) {
                var marker = view.getUint16(offset, false);
                if (marker == 0xFFE1) {
                    orientation = view.getUint16(offset + (i * 12) + 8, little);
                    break;
                }
                else if ((marker &amp; 0xFF00) != 0xFF00) {
                    break;
                }
                else {
                    offset += view.getUint16(offset, false);
                }
            }
        }
        callback(orientation);
    };
    reader.readAsArrayBuffer(file);
}</code>

이 코드에는 파일이 필요합니다. JPEG 파일을 선택하는 입력 요소입니다. 그런 다음 파일 객체와 함께 getOrientation 함수를 호출하여 방향 값을 검색할 수 있으며, 이에 따라 이미지를 회전하는 데 사용할 수 있습니다.

위 내용은 JavaScript에서 JPEG EXIF ​​회전 데이터에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.