我在转换为byte []之前将JPG图像上传为byte [],但是将EXIF的位图条带上传。如何上传原始jpg而不将其转换为Bitmap?
File imagefile = new File(filepath + "DSC00021.jpg");
FileInputStream fis = new FileInputStream(imagefile);
Bitmap bi = BitmapFactory.decodeStream(fis); // EXIF info lost
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bi.compress(Bitmap.CompressFormat.JPG, 100, baos);
byte[] data = baos.toByteArray();
P.S。我不想使用任何第三方库。 ExifInterface只能写入文件而不能写入流/字节数组。
答案 0 :(得分:0)
通过
将文件转换为位图Bitmap bi = BitmapFactory.decode(filepath + "DSC00021.jpg");
您也可以指定选项,查看API documentation
或者,如果您想将元数据从一个文件交换到另一个文件,sanselan可能是最佳选择。这在操作图像时会非常有用,例如重新调整大小。
sample code将引导您朝着正确的方向前进。
答案 1 :(得分:0)
以上代码不适用于大多数情况。如果您想要解码大尺寸图像,您将收到“内存不足错误”。使用bitmpafactory选项解码。