> 백엔드 개발 > Golang > Go에서 Base64로 인코딩된 이미지를 올바르게 디코딩하는 방법은 무엇입니까?

Go에서 Base64로 인코딩된 이미지를 올바르게 디코딩하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-04 10:14:20
원래의
184명이 탐색했습니다.

How to Properly Decode Base64-Encoded Images in Go?

Go Base64 이미지 디코드

HTML5 캔버스로 작업할 때 base64로 인코딩된 이미지 데이터 URL을 얻는 것이 일반적입니다. 이러한 문자열에는 데이터 접두어와 base64로 인코딩된 이미지 데이터 자체가 모두 포함되어 있습니다.

문제:

일반적으로 발생하는 한 가지 문제는 다음과 같은 경우 "알 수 없는 이미지 형식" 오류가 발생하는 것입니다. 다음을 사용하여 base64로 인코딩된 이미지를 디코딩하려고 합니다. image.DecodeConfig().

해결 방법

1. 이미지 형식 핸들러 등록:

image.DecodeConfig() 함수는 실행 전에 핸들러가 등록된 이미지 형식만 인식합니다. 자주 발생하는 PNG 이미지의 경우 image/png 패키지를 가져옵니다.

import _ "image/png"
로그인 후 복사

이 패키지를 가져오면 PNG 형식 핸들러가 등록되어 image.DecodeConfig()가 PNG 이미지를 성공적으로 디코딩할 수 있습니다.

2. 데이터 접두사 제거:

디코딩하기 전에 데이터 URL의 데이터 접두사(예: data:image/png;base64)를 제거해야 합니다. 이를 수행하는 보다 효율적인 방법은 입력 문자열을 분할하는 것입니다.

input := "data:image/png;base64,iVkhdfjdAjdfirtn="
b64data := input[strings.IndexByte(input, ',')+1:]
로그인 후 복사

이 분할 작업은 데이터를 복사하지 않고 새 문자열 헤더를 생성하므로 성능이 향상됩니다.

형식을 일단 지정하면 핸들러가 등록되고 데이터 접두사가 제거되면 image.DecodeConfig()가 PNG 이미지를 성공적으로 디코딩하고 너비 및 높이 정보를 제공할 수 있습니다.

위 내용은 Go에서 Base64로 인코딩된 이미지를 올바르게 디코딩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿