我看到许多人都遇到过类似的问题,但是我还没有尝试确切地找到我想要的东西。
因此,我有一个读取输入图像并将其转换为字节数组的方法:
File imgPath = new File(ImageName);
BufferedImage bufferedImage = ImageIO.read(imgPath);
WritableRaster raster = bufferedImage .getRaster();
DataBufferByte data = (DataBufferByte) raster.getDataBuffer();
我现在要做的是将其转换回BufferedImage(我有一个需要此功能的应用程序)。请注意,“ test”是字节数组。
BufferedImage img = ImageIO.read(new ByteArrayInputStream(test));
File outputfile = new File("src/image.jpg");
ImageIO.write(img,"jpg",outputfile);
但是,这将返回以下异常:
Exception in thread "main" java.lang.IllegalArgumentException: im == null!
这是因为BufferedImage
img为空。我认为这与以下事实有关:在我从BufferedImage到字节数组的原始转换中,信息已更改/丢失,因此数据不再可以识别为jpg。
有人对如何解决这个问题有任何建议吗?将不胜感激。
建议将其转换为字节数组
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(img, "jpg", baos);
byte[] bytes = baos.toByteArray();
我看到很多人都有类似的问题,但我还没有试图找到我要找的东西。 因此,我有一个方法读取输入图像并将其转换为字节数组: 这是因为BufferedImage img为空。我认为这与我最初从BufferedImage到字节数组的转换中,信息被更改/丢失,因此数据不能再被识别为JPG有关。 有人对如何解决这个有什么建议吗?不胜感激。
问题内容: 在下面的: 为什么将-127转换为63?以及如何将其恢复为-127 [编辑:]下面的Java版本(表明它不仅是“ Scala问题”) 问题答案: 您正在调用的构造函数使得二进制到字符串的转换使用解码:变得很明显。您想要的是根本不使用解码。 幸运的是,有一个构造函数:。 现在,您将数据存储在一个字符串中,但是您希望完全照原样返回它。但猜猜怎么了! 没错,还会自动应用一种编码。幸运的是,有
问题内容: 目标是将a转换为a ,将其在数据的a个活动之间传递,然后在以后的阶段将其重新转换回a 以便显示在中。 问题是,每当我尝试这样做时,我只会得到一个空位图和无描述性,无用的日志输出: (特别是因为在这种情况下没有必要)。 我已经运行了以下测试案例,该案例肯定将问题缩小为转换和还原代码。根据我的调试,解码正确,字节数组的大小正确且已满,位图配置被强制设置为相同,只是失败了: 前正确显示图像,
问题内容: 我试图理解一个到字符串,一个的字符串表示形式到转换…我将我的转换成一个要发送的字符串,然后我希望我的Web服务(用python编写)将数据直接回显给客户端。 当我从Java应用程序发送数据时… 字节发送.. 发送(这是Arrays.toString()的结果,它应该是我的字节数据的字符串表示形式,该数据将通过电线发送): 在python端,python服务器将字符串返回给调用方(我可以
问题内容: 首先,对英语不好对不起。 好吧,我想从torrent文件中读取散列信息。目前,我正在使用https://github.com/hyPiRion/java- bencode 这个bencode库来解码信息,但是我的问题是当我想将字符串转换为字节数组时。种子文件使用UTF-8编码。但是如果我这样做 很好。任何真正有用的东西。 另一方面,为了比较或尝试获取字符串,而不是获取字节,我已经阅读了
如何在java中将字节数组转换为int。我正在构建蓝牙应用程序,我在其上收到字节数组中的消息,然后将其转换为字符串,它已成功转换,但我也希望它以整数形式存在