Skip to content

Commit 658f43c

Browse files
committed
feat(UploadImage): heic 파일 업로드 시 jpg파일로 변환
1 parent bc09b5a commit 658f43c

4 files changed

Lines changed: 12642 additions & 12009 deletions

File tree

package-lock.json

Lines changed: 113 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"@testing-library/user-event": "^13.5.0",
1313
"axios": "^0.27.2",
1414
"browser-image-compression": "^2.0.0",
15+
"heic2any": "^0.0.3",
1516
"react": "^18.1.0",
1617
"react-dom": "^18.1.0",
1718
"react-router-dom": "^6.3.0",

src/components/UploadImage/index.jsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { IMAGE_URLS } from 'utils/constants/images';
66
import { Modal } from 'components';
77

88
import imageCompression from 'browser-image-compression';
9+
import heic2any from 'heic2any';
910

1011
const { backgroundGreen, mainWhite } = theme.color;
1112
const { POST_ADD_IMG } = IMAGE_URLS;
@@ -67,11 +68,11 @@ const UploadImage = ({ onChange, defaultImage, ...props }) => {
6768
return;
6869
}
6970

70-
if (!/\.(gif|jpg|jpeg|png)$/i.test(fileBlob.name)) {
71+
if (!/\.(gif|jpg|jpeg|png|heic)$/i.test(fileBlob.name)) {
7172
setModalMsg({
7273
isModal: true,
7374
title: '등록할 수 없는 파일입니다.',
74-
description: '등록 가능한 확장자: jpg, jpeg, gif, png',
75+
description: '등록 가능한 확장자: jpg, jpeg, gif, png, heic',
7576
});
7677
return;
7778
}
@@ -85,6 +86,10 @@ const UploadImage = ({ onChange, defaultImage, ...props }) => {
8586
return;
8687
}
8788

89+
if (/\.(heic)$/i.test(fileBlob.name)) {
90+
fileBlob = await heic2any({ blob: fileBlob, toType: 'image/jpeg' });
91+
}
92+
8893
// 1MB 보다 크다면 변환
8994
if (fileBlob.size > 1024 * 1024) {
9095
fileBlob = await CompressImage(fileBlob);

0 commit comments

Comments
 (0)