Я использую набор подписи Wacom для захвата подписи в JS как строку Base64. Затем я отправляю эту строку Base64 на свой сервер Golang и сохраняю ее в БД. Когда я затем хочу сохранить эту строку Base64 как изображение, я всегда получаю сообщение об ошибке «Плохой png». Все конвертеры могут без проблем открывать строки Base64. Вот моя функция и строка Base64 в качестве примера.
func saveImageTest()
{
im1 := "" //Link to the string is below
idx := strings.Index(im1, ";base64,")
if idx < 0 {
fmt.Println("InvalidImage")
}
ImageType := im1[11:idx]
fmt.Println(ImageType)
unbased, err := base64.StdEncoding.DecodeString(im1)
if err != nil {
log.Println("Cannot decode b64")
}
r := bytes.NewReader(unbased)
im, err := png.Decode(r)
if err != nil {
log.Println("Bad png")
}
f, err := os.OpenFile("example.png", os.O_WRONLY|os.O_CREATE, 0777)
if err != nil {
log.Println("Cannot open file")
}
png.Encode(f, im)
}
Ссылка на строку Base64 Тестовая подпись