Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- SCSS import
- SCSS use
- KDT 프로그래머스
- KDT 프로그래머스 데브코스 프론트엔드
- 쌓임맥락
- vue mixin
- nextjs사용법
- Vue
- 다른컴퓨터에서 git사용
- react next
- vue 지역 컴포넌트
- SCSS forward
- 고양이 사진 검색기
- 프로그래머스 프론트엔드 데브코스
- flex
- git 같은계정 다른 컴퓨터
- 리스트 렌더링
- 이벤트 수식어
- SCSS extend
- postcss
- vuex map
- vue 이벤트 수신
- 프로그래머스 데브코스 프론트엔드
- netlify redirect
- 리액트
- 폼 입력 바인딩
- 프로그래머스 데브코스
- Spacer
- intersection opserver
- 프로그래머스 K_Digital Training
Archives
- Today
- Total
혼자 적어보는 노트
[React] 아이폰 HEIC 이미지 JPEG로 변환 본문
아이폰의 heic 파일을 업로드할 경우 이미지가 엑박이 뜨는 현상이 발생했다.
업로드 시 heic파일을 제한하면 되겠지만 사용자의 편의를 위해 변환해주는 방법을 알아보았다.
heic2any 라이브러리 사용
간단하게 라이브러리를 설치하여 해결할 수 있었다.
import heic2any from 'heic2any';
const UploadImage = ({ onChange, defaultImage, ...props }) => {
const [imageSrc, setImageSrc] = useState(defaultImage);
const fileInputRef = useRef(null);
const handleFileChange = async (e) => {
let fileBlob = e.target.files[0];
const MAX_MB = 10;
if (!fileBlob) {
return;
}
if (/\.(heic)$/i.test(fileBlob.name)) {
fileBlob = await heic2any({ blob: fileBlob, toType: 'image/jpeg' });
}
const reader = new FileReader();
reader.readAsDataURL(fileBlob);
reader.onload = () => {
setImageSrc(reader.result);
onChange(reader.result);
};
};
//.. 생략
++ 22.11.14
Next.js - Blob is not defined
Next.js에서 사용 시 heic2any 함수를 사용하는 것만으로도 Blob is not defined 에러가 나타난다.
✅ 해결
if (/\.(heic)$/i.test(fileBlob.name)) {
const heic2any = require('heic2any');
fileBlob = await heic2any({ blob: fileBlob, toType: 'image/jpeg' });
if (!imageFile) {
return;
}
}
함수 내부에서 require을 사용하여 불러오면 된다.
참고: ReferenceError: Blob is not defined" error when using with NextJS
'React' 카테고리의 다른 글
[React] 클릭 시 원하는 컴포넌트로 스크롤 이동 (0) | 2022.08.20 |
---|---|
[React] Emotion CSS 사용 (0) | 2022.07.10 |
[React] 이미지 업로드 시 이미지 압축 (0) | 2022.07.06 |
[Redux] Redux-Persist (0) | 2022.06.27 |
[React] 리액트에서 디바운싱 구현하기 (0) | 2022.03.14 |
Comments