如何使用JAVA / JNA将PointerByReference图像转换为Byte []然后转换为BITMAP?

时间:2014-01-17 11:56:23

标签: java c++ pointers jna dib

我正在使用JNA使用扫描程序库“LSAPI.DLL”,因此,在扫描后我得到一个frontimg参数,这是一个Dib格式的指针,所以我必须将它转换为Byte []然后将Byte []转换为位图,最后将扫描图像保存到桌面上进行测试。

这是给我一个frontimg指针的方法:

int a1 = lsApi.LSReadImage(hConnect.getValue(), fgWindow, LsApiConst.CLEAR_ALL_BLACK, (char) LsApiConst.SIDE_FRONT_IMAGE, LsApiConst.READMODE_BRUTTO, NrDoc, frontimg, backimg, R1, R2);

我试图从这开始,但它不起作用:

Pointer p = frontimg.getValue();
byte[] buffer = p.getByteArray(0, frontimg.getValue().SIZE);
BufferedImage img = ImageIO.read(new ByteArrayInputStream(buffer));
    ImageIO.write(img,"BMP", new File("D:/image.BMP")); 
    System.out.println("image created");

有什么办法可以继续吗?

0 个答案:

没有答案
相关问题