首页 > 解决方案 > 将加密图像(字节数组)打印到新图像中

问题描述

我做错了什么我希望图像的加密字节创建一个新图像,但它抛出异常 IllegalArgumentException:

RC6Algorithm rc6 = new RC6Algorithm();
byte[] enc = rc6.encrypt(imageByte, key.getBytes());
ByteArrayInputStream in = new ByteArrayInputStream(enc);
BufferedImage   newImage = ImageIO.read(in);
ImageIO.write(newImage, "jpg", new File(
                    "d:/s.jpg"));

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: 
image == null!

标签: javaimageswingbuffer

解决方案


令人惊讶的是,图像文件的加密字节不能被解码为图像文件。

您可以尝试加密图像未压缩像素的字节,然后让这些字节代表另一个图像的像素,并根据需要保存此图像。但是,如果您希望能够将生成的图像解密回原始的未加密图像,则需要以无损格式(例如 PNG)写入加密图像。JPEG 不行。


推荐阅读