LeptUtils.convertPixToImage之后ImageIO.write无法正常工作

问题描述

我创建了一些使用TesSaract的应用,在使用OCR之前,我使用Leptutils从图像中删除了水平线。在Eclipse中,一切正常,但是当我在jar文件中导出时,programm卡在ImageIO.write上。此功能在自己的威胁下完成。当我在主要威胁下使用这些操作时,一切正常。怎么了? 这是一些代码

PDFRenderer pdfRenderer = new PDFRenderer(document);
int lpp = document.getNumberOfPages();
Cikls=0; Aplis =1;
ST_OCR1(lpp); //Run process monitor
Pix bild = null;
Pix bild1 = null;
for(int i = 0; i < lpp; ++i) {
    Cikls=i;

 BufferedImage image = pdfRenderer.renderImageWithDPI(i,dpi,ImageType.GRAY);

 try { bild =LeptUtils.convertimageToPix(image); logger.info("convertimageToPix");}
    catch (IOException e) {logger.info("Exeption convertimageToPix");}
 bild1 = LeptUtils.removeLines(bild);
 try {image = LeptUtils.convertPixToImage(bild1); logger.info("convertPixToImage");}
    catch (IOException e) {logger.info("Exeption convertPixToImage");}
 try {ImageIO.write(image,Jpg,new File(Cels + "\\Temp\\"+ "p"+i+"."+Jpg)); logger.info("ImageIO.write");} // <- Here programm stuck!!!!!!!!!
    catch (IOException e) { logger.info("Exeption ImageIO.write");}

}
  //release Pix resource
PointerByReference pRef = new PointerByReference();
pRef.setValue(bild.getPointer());
Leptonica1.pixDestroy(pRef);
pRef.setValue(bild1.getPointer());
Leptonica1.pixDestroy(pRef);
document.close();

解决方法

解决了! 我用: Leptonica1.pixWrite(Cels +“ \ Temp \ p” + i +“。” + Jpg,bild1,ILeptonica.IFF_TIFF); 代替: 图片= LeptUtils.convertPixToImage(bild1); ImageIO.write(image,Jpg,new File(Cels +“ \ Temp \” +“ p” + i +“。” + Jpg));