gpt4 book ai didi

java - 将捕获的图像从 Java 发送到 Android 时出错

转载 作者:行者123 更新时间:2023-12-01 04:42:53 24 4
gpt4 key购买 nike

我有在java中从屏幕捕获图像的代码,我将最终捕获的图像作为BufferedImage对象,并且可以将其转换为ImageIcon

问题是当将该文件发送到 android 时无法将其读取为可绘制的位图。有人对此有答案吗?

要发送的代码(Java)

            BufferedImage image = robot.createScreenCapture(rectangle);
ImageIcon imageIcon = new ImageIcon(image);

//Send captured screen to the server
try {
System.out.println("before sending image");

oos.writeObject(imageIcon);
oos.reset(); //Clear ObjectOutputStream cache
System.out.println("New screenshot sent");
} catch (IOException ex) {
ex.printStackTrace();
}

Android接收器部分

Thread t= new Thread(new Runnable() {

@Override
public void run() {
while (true) {


try {

client= sc.accept();
is = client.getInputStream();

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

BitmapDrawable imageIcon = null;

try {
ois = new ObjectInputStream(is);
imageIcon = (BitmapDrawable) ois.readObject();
//Drawable d = Drawable.createFromStream(is, null);
IV.setImageDrawable(imageIcon);
} catch (OptionalDataException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("New image recieved");


}

}

我得到的异常(exception)是它无法将 imageIcon 或 BufferedImage 转换为可绘制的位图。

最佳答案

你不应该使用对象,因为oracle jvm与android的dalvik不一样。尝试将捕获的图像转换为原始字节并将这些字节发送到 android。然后在android中将此原始数据隐藏为可绘制的。

关于java - 将捕获的图像从 Java 发送到 Android 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16264498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com