Tesseract -ocr – java – 报错JFIF APP0 must be first marker after SOI 解决


1.原因

出现这个报错,是因为图片格式有残缺或者图片格式在接口获取后存储的格式与内部的编码有冲突导致

2.解决

将其转为png后再调用 Tesseract  即可

我封装了个工具

 //转换图片为png格式
    public static String convertPng(String url) {
        String tarFilePath = url.substring(0, url.lastIndexOf(".")) + ".png";
        try {
            BufferedImage bufferedImage = ImageIO.read(new File(url));
            BufferedImage newBufferedImage = new BufferedImage(bufferedImage.getWidth(), bufferedImage.getHeight(), BufferedImage.TYPE_INT_RGB);
            newBufferedImage.createGraphics().drawImage(bufferedImage, 0, 0, Color.white, null);
            ImageIO.write(newBufferedImage, "png", new File(tarFilePath));
        } catch (IOException e) {
           return "";
        }
        return tarFilePath;
    }

不可直接改后缀,需要使用 ImageIO 来转才可以, 切记

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/288528.html

(0)
上一篇 2022年9月9日 21:33
下一篇 2022年9月9日 21:54

相关推荐

发表回复

登录后才能评论