如何将图像从wcf ksoap2传输到android

时间:2014-01-13 10:35:35

标签: c# java android wcf arraylist

我正在尝试将图像从wcf ksoap2发送到android。 在wcf方面,我已将所有图像转换为字节数组并将它们存储在ArrayList中。 在android端我从wcf响应填充ArrayList。 现在问题是字节数​​组没有正确接收,字节数组没有转换成Image / BufferedImage。

这是我的代码

        byt = new byte[4096];
        byt = (byte[]) al.get(5);
        //Image im;
        BufferedImage bImageFromConvert = null;
        InputStream in = new ByteArrayInputStream(byt);

        try {
            bImageFromConvert = ImageIO.read(in);
            //ImageIO.write(bImageFromConvert, "jpg", new File(
            //      "c:/new-darksouls.jpg"));               

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
}

al是我的ArrayList。

1 个答案:

答案 0 :(得分:0)

private String prepareImage() {
        if (tempPath == null ) {
            return "";
        }

        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inPreferredConfig = Bitmap.Config.ARGB_8888;
        Bitmap bitmap = BitmapFactory.decodeFile(tempPath, options);
        bitmap = Bitmap.createScaledBitmap(bitmap, 50, 50, true);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        //bitmap.compress(Bitmap.CompressFormat.PNG, 50, baos);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 50, baos);

        byte[] byteArray = baos.toByteArray();

        String imageString = com.size4u.utils.Base64
                .encodeBytes(byteArray);
        bitmap = null;
        System.gc();
        Runtime.getRuntime().gc();
        return imageString;
    }