您将您的传递
io.Reader给
png.Depre(),这开始消耗阅读器,只是发现输入不是有效的PNG,因此返回错误。
然后,将部分消耗的读取器传递给
jpeg.Depre(),该读取器将读取尚未读取的数据(不是有效的JPEG),并返回您观察到的错误。
您需要为每个解码器创建一个新的阅读器:
pngI, errPng := png.Depre(bytes.NewReader(unbased))// ...jpgI, errJpg := jpeg.Depre(bytes.NewReader(unbased))
还是更好,请考虑MIME类型,仅调用适当的解码器:
switch strings.TrimSuffix(image[5:coI], ";base64") {case "image/png": pngI, err = png.Depre(res) // ...case "image/jpeg": jpgI, err = jpeg.Depre(res) // ...}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)