デスクトップの画面画像をAndroidデバイスに転送するためにwifiを使用するアプリを開発しています。画像をバイト配列としてPCからAndroidデバイスに転送できますが、AndroidデバイスのImageViewコンポーネントで画像を表示できません。以下はサーバー(PC)とクライアント(Androidデバイス)からの2つのコード:
サーバー:
DataOutputStream ds=new DataOutputStream(soc.getOutputStream());
Rectangle rect= new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
Robot rb=new Robot();
img=rb.createScreenCapture(rect);
ByteArrayOutputStream baos=new ByteArrayOutputStream();
ImageIO.write(img, "PNG",baos);
byte[] image=baos.toByteArray();
baos.flush();
baos.close();
System.out.println(image.length);
ds.writeInt(image.length);
ds.write(image);
ds.flush();
ds.close();
クライアント:
DataInputStream bis=new DataInputStream(csoc.getInputStream());
int imgsize=bis.readInt();
byte[] img=new byte[imgsize];
int m;
while((m=bis.read())!=-1){
bis.read(img,0,img.length);
}
bis.close();
BitmapFactory.Options op=new BitmapFactory.Options();
op.inSampleSize=8;
Bitmap bmpim=BitmapFactory.decodeByteArray(img,0,img.length);
imv.setImageBitmap(BitmapFactory.decodeByteArray(img,0,img.length,op));//imv is ImageView object