Android获得图片宽高的三种方法

本文介绍了三种不同的方法来获取图片的实际宽度和高度,而无需将图片完全加载到内存中。第一种方法利用了BitmapFactory的Options类;第二种方法通过Glide加载图片并强制返回Bitmap对象;第三种方法则是通过ExifInterface直接读取图片的Exif信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、// //获取图片真正的宽高,不读入内存

// BitmapFactory.Options options = new BitmapFactory.Options();

// options.inJustDecodeBounds = true;

// Bitmap bitmap = BitmapFactory.decodeFile(path, options);

// options.inSampleSize = 1;

// options.inJustDecodeBounds = false;

//

// int width = options.outWidth;

// int height = options.outHeight;

 

 

第二种

// Glide.with(BottomDialogFragment.this.getContext())

// .load(p.getImgUrl())

// .asBitmap()//强制Glide返回一个Bitmap对象

// .into(new SimpleTarget<Bitmap>() {

// @Override

// public void onResourceReady(Bitmap bitmap, GlideAnimation<? super Bitmap> glideAnimation) {

// int width = bitmap.getWidth();

// int height = bitmap.getHeight();

// Log.e("xudong3","====================");

// Log.e("xudong3",p.getImgUrl());

// Log.e("xudong3", "width " + width); //200px

// Log.e("xudong3", "height " + height); //200px

// }

// });

 

第三种

ExifInterface exifInterface = new ExifInterface(path);

int rotation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);

int width = exifInterface.getAttributeInt(ExifInterface.TAG_IMAGE_WIDTH, 0);

int height = exifInterface.getAttributeInt(ExifInterface.TAG_IMAGE_LENGTH, 0);

 

if (rotation == ExifInterface.ORIENTATION_ROTATE_90 || rotation == ExifInterface.ORIENTATION_ROTATE_270) {

 

// 图片被旋转90或者270,使用时候将width、height换下

int temp = height;

height = width;

width = temp;

 

}else {

 

 

// 宽高对应

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值