>  기사  >  웹 프론트엔드  >  Nodejs는 이미지 회전 각도를 얻습니다.

Nodejs는 이미지 회전 각도를 얻습니다.

王林
王林원래의
2023-05-13 18:55:07774검색

모바일 기기와 카메라의 대중화로 인해 프로그램을 통해 사진을 처리해야 하는 경우가 많습니다. 그 중에서 이미지 회전은 매우 일반적인 요구 사항입니다. 이번 글에서는 Node.js를 사용하여 이미지의 회전 각도를 구하는 방법을 소개하겠습니다.

준비
시작하기 전에 Node.js 환경이 설치 및 구성되었는지 확인해야 합니다. 또한 이미지의 Exif 정보를 읽는 데 사용할 수 있는 "exif-parser"라는 Node.js 모듈도 설치해야 합니다.

"exif-parser" 모듈을 설치하는 방법은 다음과 같습니다:

npm install exif-parser
이미지 회전 각도를 얻는 방법
이미지 회전 각도를 얻는 방법을 알기 전에 먼저 Exif에 대한 몇 가지 지식을 이해해야 합니다. . Exif는 카메라 모델, 촬영 시간, ISO 값, 조리개 및 기타 정보를 포함하여 디지털 카메라로 촬영한 사진에 저장된 메타데이터입니다. Exif에는 이미지의 방향 정보를 기록하는 "Orientation"이라는 속성이 있습니다.

이 중 "방향" 값은 다음 숫자일 수 있습니다.
1: 이미지가 전혀 회전되지 않았음을 나타내며, 이때 이미지의 기본 방향은 위쪽입니다.
2: 이미지가 회전함을 나타냅니다. 수평으로 뒤집힌 상태
3: 이미지가 시계 반대 방향으로 180도 회전되었음을 나타냅니다.
4: 이미지가 수직으로 뒤집힌 것을 나타냅니다.
5: 이미지가 시계 방향으로 90도 회전하고 수평으로 뒤집힌 것을 나타냅니다.
6: 이미지가 90도 회전되었음을 나타냅니다. 도 시계 방향
7: 이미지가 시계 반대 방향으로 90도 회전하고 수평으로 뒤집혔음을 나타냅니다.
8: 이미지가 시계 반대 방향으로 회전했음을 나타냅니다. 90도 회전

이 정보를 사용하면 이미지 회전 각도를 얻는 것이 매우 간단해집니다. Exif 정보에서 "Orientation" 속성 값을 읽고 다양한 값을 기반으로 이미지의 회전 각도를 결정하기만 하면 됩니다.

다음은 이미지 회전 각도를 구하는 코드입니다:

//"exif-parser" 모듈 소개
const ExifParser = require('exif-parser');
//파일 읽기 모듈 소개
const fs = require(' fs');

// 이미지 경로 정의
const imagePath = './example.jpg';

// 이미지 파일 읽기
const imageBuffer = fs.readFileSync(imagePath);

/ / Exif 정보 구문 분석
const extractParser = ExifParser.create(imageBuffer);
const exifResult = exifParser.parse();

// Orientation 속성 값 가져오기
constientation = ExifResult.tags.Orientation;

// 결정 다양한 값에 따른 이미지 회전 각도
let 도 = 0;
스위치(방향) {
케이스 3:

degree = 180;
break;

케이스 6:

degree = 90;
break;

케이스 8:

degree = 270;
break;

}

console.log(图片旋转角度为 ${degree} 度);

위 코드에서는 먼저 "example.jpg"라는 이미지를 읽고 "exif-parser" 모듈을 통해 Exif 정보를 구문 분석했습니다. 그런 다음 "Orientation" 값에 따라 이미지의 회전 각도가 결정됩니다. 마지막으로 이미지의 회전 각도가 인쇄됩니다.

요약
이 글에서는 Node.js를 사용하여 이미지의 회전 각도를 얻는 방법을 소개합니다. Exif 정보의 "Orientation" 속성 값을 읽어 이미지의 회전 각도를 결정합니다. 이러한 방식으로 이미지를 보다 편리하게 처리하고 개발 효율성을 높일 수 있습니다.

위 내용은 Nodejs는 이미지 회전 각도를 얻습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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