You've already forked imgproxy
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:
14
process.go
14
process.go
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user