1
0
mirror of https://github.com/imgproxy/imgproxy.git synced 2025-12-05 23:28:10 +02:00

Fix loadind BMP stored in ICO

This commit is contained in:
DarthSim
2020-02-14 19:32:05 +06:00
parent 74f2f157e2
commit 1d1caeb06a
3 changed files with 63 additions and 2 deletions

View File

@@ -587,12 +587,22 @@ func getIcoData(imgdata *imageData) (*imageData, error) {
data := imgdata.Data[offset : offset+size]
var format string
meta, err := imagemeta.DecodeMeta(bytes.NewReader(data))
if err != nil {
return nil, err
// Looks like it's BMP with an incomplete header
if d, err := imagemeta.FixBmpHeader(data); err == nil {
format = "bmp"
data = d
} else {
return nil, err
}
} else {
format = meta.Format()
}
if imgtype, ok := imageTypes[meta.Format()]; ok && vipsTypeSupportLoad[imgtype] {
if imgtype, ok := imageTypes[format]; ok && vipsTypeSupportLoad[imgtype] {
return &imageData{
Data: data,
Type: imgtype,