目前我正在尝试从Web服务器下载图像并保留附加到图片的Exif数据。下载图像本身完全没问题。示例代码是这样的(没有任何try / catch或AsyncTask相关代码使其可读)
final HttpGet request = new HttpGet("IMAGE_URL");
final AndroidHttpClient httpClient = AndroidHttpClient.newInstance("Android");
HttpResponse response = httpClient.execute(request);
InputStream inputStream = inputStream = response.getEntity().getContent();
现在我只需调用 BitmapFactory 从Inputstream创建一个Bitmap对象,就像这样
BitmapFactory.decodeStream(inputStream);
首先,我认为BitmapFactory是罪魁祸首,并尝试从输入流创建的文件中读取Exif数据。 ExifInterface无法获取Exif数据并在Windows上打开,保存的图像根本没有Exif。
答案 0 :(得分:0)
Android Api不允许您仅从exif
读取Stream
中的File
数据。更多
您可以使用此链接获取信息:Reading android jpeg EXIF metadata
从给定Click Here的链接下载元数据提取器以下载库,选择版本 2.5.0.RC-3.zip
解压缩jar文件夹并将jar导入到项目中的libs文件夹中,然后执行以下代码
try
{
InputStream is = new URL("your image url").openStream();
BufferedInputStream bis = new BufferedInputStream(is);
Metadata metadata = ImageMetadataReader.readMetadata(bis,true);
for (Directory directory : metadata.getDirectories())
{
for (Tag tag : directory.getTags())
{
System.out.println(tag);
}
}
}
catch (ImageProcessingException e){}
catch (IOException e) {}