如何将图像放在一个文件中,同时在该文件中我也想放置String数据?

时间:2016-12-31 14:48:11

标签: java swing file-io jtable

我创建了一个RegistrationFrame 在这里注册用户提供自己的个人信息:

Registration Frame

所有用户的信息都存储在一个文件中(使用FileInput / OutputStream,ObjectInput / OutputStream)。之后用户LoggedIn(用户身份验证)
关于该用户的所有个人信息将显示在这样的JTable中:

PersonalInfo_Table

现在我想补充一点,那就是用户自己的照片,这样当用户自己注册时,他们也可以添加自己的照片。那么我应该在我的RegistrationFrame(上面给出的RegistrationFrame图像)中使用什么方法..并且在登录用户的帐户后,该照片也应该显示在同一个JTable(PersonalInfo_Table)中?

1 个答案:

答案 0 :(得分:0)

有关详细信息,请参阅.png文件规范。

我已经在IEND关键字块anxillary chunk之前插入了。这个块是非关键的,如果解码器不知道如何解码它,它将安全地忽略它。我们关心和按顺序的块区域是......

4 bytes length(不包括4个字节的长度)

4 bytes type(如果您将第三个字节设为小写ASCII字符,则会强制编解码器忽略它(确保安全))

n bytes(短信的文字)。

这是一个带有嵌入文字Hello I am a kitty.的cat .png enter image description here

00 00 00 0E 74 45 58 74 48 65 6C 6C 6F 20 49 20 61 6D 20 6B 69 74 74 79 2E

....tEXtHello I am kitty.

通过在文本或tEXt中搜索我创建的tEXT(不与名为74 45 58 74的现有块类型混淆)的块类型,可以很容易地从.png解析为文本文件十六进制其中第三个字母为小写的tExT确保解码器忽略它。在找到tEXt之前,文本的长度是4个字节,并且是字符串的长度+ 4个字节。由您决定如何将数据编码为字符串。

摘要

所以.png是一个很好的媒介,可以安全地将图像和一些文本存储在一个便携式文件中。可能还有其他文件格式和方法。如果您认为与两个单独的文件相比,将文本编码/解码到您的时间是值得的。