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 중국어 웹사이트의 기타 관련 기사를 참조하세요!