登录
首页 >  Golang >  Go问答

JPEG参数结构不一致:库定义大小为624,但调用者预期大小为656

来源:stackoverflow

时间:2024-02-06 09:15:23 385浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《JPEG参数结构不一致:库定义大小为624,但调用者预期大小为656》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

我正在使用 golang 中的 ocr 编写 pdf 到文本的解决方案。

我使用的库是 gosseract 和 go-fitz

该程序一直有效,直到我尝试使用 gosseract 从内存加载图像:

func processdoc(file []byte) (string, error) {
    var text strings.builder

    client := gosseract.newclient()

    doc, err := fitz.newfrommemory(file)

    if err != nil {
        log.println(err)
        return "", nil
    }

    for n := 0; n < doc.numpage(); n++ {
        img, err := doc.image(n)

        if err != nil {
            log.println(err)
            return "", err
        }

        buf := new(bytes.buffer)

        err = jpeg.encode(buf, img, nil)

        if err != nil {
            log.println(err)
            return "", err
        }

        client.setimagefrombytes(buf.bytes())
        
        res, err := client.text()
        
        if err != nil {
            return "", err
        }

        text.writestring(res)
    }
    return text.string(), nil
}

然后我收到此错误:

JPEG parameter struct mismatch: library thinks size is 624, caller expects 656
Error in pixReadStreamJpeg: internal jpeg error
Error in pixReadMemJpeg: pix not read
Error in pixReadMem: jpeg: no pix returned

经过大量搜索,我了解到 libleptonicamupdf 可能使用不同版本的 jpeglib.h。但整个系统中该文件只有一个实例。

我还应该注意,我从源代码编译了 libjpeg,然后 libmupdflibleptonica 使用该版本的 libjpeg 以避免任何形式的冲突,但它仍然返回结构不匹配错误。


正确答案


您是从源代码编译 mupdf 吗?

默认情况下,mupdf 包含它自己的 libjpeg 版本 - mupdf 可能针对其自己的版本进行编译,而 libleptonica 则针对系统版本进行编译。

今天关于《JPEG参数结构不一致:库定义大小为624,但调用者预期大小为656》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>