Node.js
Node.JS base64로 인코딩한 이미지 incorrect 오류
리콜
2023. 11. 7. 16:04
db에서 받아온 blob데이터를 base64로 인코딩 하였는데 이미지가 보이지 않았다.
다른 사이트의 base64 이미지 뷰어에 base64를 넣었는데
사이트는:
https://ko.rakko.tools/tools/71/
를 사용하였다.
Base64- 이미지 디코더 / 컨버터 | RAKKOTOOLS🔧
Base64 문자열을 이미지로 디코딩
ko.rakko.tools
위와 같이
"데이터 수집에 실패했습니다. 입력 내용에 오류가 없는지 확인하십시오."
라고 떴다.
여러 스택오버플로우를 돌아다니다가 겨우
해결하였다.
NodeJS 버전은 18버전을 사용하였다.
기존에는
rows = rows.map(row => {
if (row.IMG_DATA) {
// Buffer에 데이터를 바이너리로 로드하고 base64로 인코딩
row.IMG_DATA = Buffer.from(row.IMG_DATA).toString('base64');
}
다음과 같이 db에서 받아온 이미지 데이터를 base64로 인코딩 하였는데
이미지가 안나왔다.
그래서 해결한 코드는
rows = rows.map(row => {
if (row.IMG_DATA) {
// Buffer에 데이터를 바이너리로 로드하고 base64로 인코딩
row.IMG_DATA = Buffer.from(row.IMG_DATA, 'base64').toString();
}
이다.
수정 전 base64 결과
toString('base64')를 하면 이렇게 이쁘게 네모나게 나오지만
이미지가 보이지 않는다.
수정 후 base64 결과
위와같이 출력되는데 이미지가 정상적으로 출력된다.
다만 보이는 바와 같이 밑줄이 되어있는데 더블클릭으로 복사 하기가 불편해진다.
반응형