android图片用数组存储,android – 如何直接从字节数组中显示JPEG图像(保存图像之前)?...

我从客户端套接字接收jpeg图像(图像大小:50KB)并保存在模拟器SD卡中.从那里我在

Imageview中显示jpg图像.但是我想在将图像保存到SD卡之前显示图像,因为我们的android appli将从套接字接收连续图像,如果我按照接收,保存和显示方法那么它将变得非常慢的过程,所以提高我想要的速度仅从ram显示.为此,我需要将图像阵列临时保存在RAM上.从那里我计划通过使用单独的线程显示和保存.那么请指导我如何从字节数组中显示图像.

注意:我从socket接收JPEG图像,而不是.bmp或.gif或.png.

下面是我从tcp socket接收图像的代码. (工作正常)

(注意:这是在单独的线程中完成的,不要在UI线程中尝试.)

public byte[] mybytearray = new byte[310000];

private int bytesRead=0;

private int current = 0;

ServerSocket serverSocket = new ServerSocket(SERVERPORT);

Socket client = serverSocket.accept();

try {

myDir=new File("/mnt/sdcard/saved_images");

if (!myDir.exists()){

myDir.mkdir();

}else{

Log.d("ServerActivity","Folder Already created" );

}

String fpath = "/image0001.jpg";

File file = new File (myDir, fpath);

if (file.exists ()) file.delete ();

InputStream is = client.getInputStream();

FileOutputStream fos = new FileOutputStream(file);

BufferedOutputStream bos = new BufferedOutputStream(fos);

bytesRead = is.read(mybytearray,0,mybytearray.length);

current = bytesRead;

do {

bytesRead = is.read(mybytearray, current, (mybytearray.length-current));

if(bytesRead >= 0) current += bytesRead;

} while(bytesRead > -1);

bos.write(mybytearray, 0 , current);

Log.d("ServerActivity","Reconstructing Image from array");

bos.flush();

bos.close();

fos.flush();

fos.close();

is.close();

client.close();

serverSocket.close();

} catch (Exception e) {

e.printStackTrace();

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值