欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

安卓图片缩放

程序员文章站 2024-01-19 09:22:22
...

缩放图片并加载到内存中
_计算机图形处理的原理
计算机在表示图形的时候使用像素点来表示,每个像素点都是使用一个颜色来表示,
每个颜色都是6个十六进制的数值来表示的,计算机在底层表示图形时就是使用01001字符串来表示的,处理图形时就是修改0101的序列。

缩放加载图片:
1、得到设备屏幕的分辨率:
2、得到原图的分辨率:
3、通过比较得到一个合适的比例值:
4、使用比例值缩放一张图片,并加载到内存中:

代码:

//    	1、得到设备屏幕的分辨率:
    	WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
    	Display display = wm.getDefaultDisplay();
    	long screenHeigth = display.getHeight();
    	long screenWidth = display.getWidth();
    	
//    	2、得到原图的分辨率:
    	Options opts = new Options();
    	//如果置为true,表示只绑定图片的大小
    	opts.inJustDecodeBounds = true;
    	BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/1.jpg", opts);
    	long scrHeight = opts.outHeight;
    	long scrWidth = opts.outWidth;
    	
//    	3、通过比较得到一个合适的比例值:
    	int scale = 1;
    	
    	//3000/320  = 9 3000/480=6
    	int sx = (int) (scrWidth/screenWidth);
    	int sy = (int) (scrHeight/screenHeigth);
    	if(sx>=sy&& sx>=1){
    		scale = sx;
    	}
    	if(sy>sx&& sy>=1){
    		scale = sy;
    	}
//    	4、使用比例值缩放一张图片,并加载到内存中:
    	opts.inJustDecodeBounds = false;
    	//按照比例缩放原图
    	opts.inSampleSize = scale;
    	Bitmap bm = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory()+"/1.jpg", opts);
相关标签: 图片缩放