【发布时间】:2019-08-27 21:51:36
【问题描述】:
我需要能够修改 jpeg 或 png 文件的内容,并且能够成功地将图像分解为字节,反之亦然。唯一的问题是我不知道 jpeg 文件头或 png 文件头由多少字节组成。对于像我这样的初学者来说,大多数网站上的信息都非常模糊和/或信息量太大。
如果有人能提供一个简单的答案,告诉我需要跳过多少字节才能通过标题以及如何识别图像是 jpeg 图像还是 png 图像以及任何其他重要信息,我真的很感激我可能没有提到。
我添加了下面的代码,我使用它从图像中提取字节并将图像转换为字节。
注意:此代码适用于安卓操作系统
用于将图像转换为字节的代码:
public byte[] imgtobytes(File f)
{
FileInputStream fis=null;
try
{
fis = new FileInputStream(f);
}
catch(Exception e) {}
Bitmap bm = BitmapFactory.decodeStream(fis);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 100 , baos);
byte[] b = baos.toByteArray();
return b;
}
用于将字节转换为图像并将其显示在图像视图上的代码:
public void bytestoimg(byte[] bytearray, ImageView imgv)
{
Bitmap bmp = BitmapFactory.decodeByteArray(bytearray, 0, bytearray.length);
imgv.setImageBitmap(Bitmap.createScaledBitmap(bmp, imgv.getWidth(),
imgv.getHeight(), false));
}
【问题讨论】:
-
只跳过固定数量的字节是行不通的。相反,找到一个读取图像格式的库。
-
我确实找到了一个读取图像格式但我仍然需要编辑内容并且仅仅知道图像格式是不够的。
-
这是代码@Henry jaimonmathew.wordpress.com/2011/01/29/simpleimageinfo的链接
-
如果我问新手问题真的很抱歉,但我不是很有经验