📱테스트 환경
"react": "18.2.0"
"react-dom": "18.2.0"
"typescript": "^5.1.6"
😢 내가 겪은 문제
canvas 에서 이미지를 다시 새롭게 그리려고 하고있는데, cavas.drawImage 에 나는 blob 형식을 넣었는데
구글에 검색해서 이곳저곳 살펴보니 대부분 base64 를 넣더라 .. 이유는 잘 모르겠지만, 다 그렇게 하니까 나도 그렇게 해야겠다는
생각을 하게 돼었다.
그래서 일단 blob 를 base64 로 타입을 변환시켜야 하는데 그냥 이해하진 못해도 그대로 복사해서 붙여쓸 수 있도록 함수화 하였다.
생각보다 쓸일이 많지 않을까 싶어서 ... ㅎ
converBlobToBase64.tsx
export const convertBlobToBase64 = (blob: Blob): Promise<string> => {
return new Promise((resolve, reject) => {
const reader = new FileReader();
// 파일을 읽는 동안 실행할 함수
reader.onload = function (event) {
if (event.target && event.target.result) {
// Blob을 Base64 문자열로 변환
const base64String = event.target.result.toString();
resolve(base64String); // 변환 성공 시 결과를 반환
} else {
reject(new Error("Blob to base64 conversion failed.")); // 변환 실패 시 에러를 반환
}
};
// 파일 읽기 중 오류가 발생한 경우 실행할 함수
reader.onerror = function (error) {
reject(error); // 오류 발생 시 에러를 반환
};
// Blob을 읽기 시작
reader.readAsDataURL(blob);
});
};
이거는 딱히 내가 뭐 바꿔서 사용하고 이럴 것도 없어서
따로 설명없이 주석에 열심히 메모해 보았다.
'Javascript > Next' 카테고리의 다른 글
[JavaScript] Canvas 글자에 그림자 효과 (2) | 2023.10.26 |
---|---|
[NextJS] base64 Image ReSize (0) | 2023.09.01 |
[NextJS] Mobile Web 에서 이메일 시스템 모달창 띄우기 (0) | 2023.08.30 |
[NextJS] 모바일인지 PC 인지 구별하는 방법 (0) | 2023.08.30 |
[NextJS] canvas 이용해서 썸네일 만들기 (5) | 2023.08.29 |