jpeg.Decode(file)解析图片报invalid JPEG format: missing SOI marker

1. 运行环境

golang 1.19.2

2. 问题描述?

golang的image/jpeg包,使用jpeg.Decode(file)解析图片时,报:

invalid JPEG format: missing SOI marker

查看源码,发现他是判断图片的第一个字节为0xff或者第二个字节为0xd8,满足其中一个就行

    if err := d.readFull(d.tmp[:2]); err != nil {
        return nil, err
    }
    if d.tmp[0] != 0xff || d.tmp[1] != soiMarker {
        return nil, FormatError("missing SOI marker")
    }

但我打印jpg图片的前两个字节的时候,发现有的jpg图片并不是以这两个字节开头的

3. 您期望得到的结果?

能够正常解析图片资源

4. 您实际得到的结果?

invalid JPEG format: missing SOI marker

最佳答案

这是我的那张jpg的图片,我觉得也是图片的问题,因为我有下载了一些JPG的图片,发现有的jpg图片是以0xff或者0xd8开头的,而有的jpg却不是以这两个字节开头的

file

1年前 评论
xingkong12138 (作者) (楼主) 1年前
讨论数量: 5

file 也许是你的jpg图片有问题? 可以上传报错的那个jpg文件不?

1年前 评论

这是我的那张jpg的图片,我觉得也是图片的问题,因为我有下载了一些JPG的图片,发现有的jpg图片是以0xff或者0xd8开头的,而有的jpg却不是以这两个字节开头的

file

1年前 评论
xingkong12138 (作者) (楼主) 1年前

jpg要是正常的才行,用其他格式改的jpg后缀,检测的时候就报错了吧

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!