Android多媒体—图片技术

一、概述

安卓中的图片处理和java基础中的GUI,思路都是一致的。
android里面显示图像的时候,使用的是32位的手法去表示的。

  • argb – 透明 : 8位 , 红色8位 , 绿色:8为 , 蓝色:8位
  • 24位的位图代表的是每个像素点有3个字节的长度,
  • 32位的位图,就应该是4个字节的长度

二、图片的操作步骤

//得到控件
pre = (ImageView) findViewById(R.id.pre);
//1.得到原图
Bitmap srcBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pre);
//2.得到拷贝图
Bitmap copyBitmap = srcBitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), srcBitmap.getConfig());
//3.定义画板
Canvas canvas = new Canvas(copyBitmap);
//4.定义画笔
Paint paint = new Paint();
//5.定义矩阵
Matrix matrix = new Matrix();
//6.开始作画
canvas.drawBitmap(copyBitmap, matrix, paint);
//7.把画写出去
pre.setImageBitmap(copyBitmap);

三、加载大图片的处理

加载大图片,如果直接硬编码采样率,程序因为图片太大,太占内存,会挂掉。解决的方法是计算屏幕与图片的宽高比例,然后取其中间值或者是最大值。

  • 得到手机的分辨率
//1. 得到窗口管理者
WindowManager manager = (WindowManager) getSystemService(WINDOW_SERVICE);

//2.得到显示相关的对象 ,里面可以包含分辨率,屏幕的密度信息
Display display = manager.getDefaultDisplay();

display.getSize(outSize);
int height = display.getHeight();
int width = display.getWidth();
  • 得到图片的大小
Options opts = new Options();
//设置采样率 , 宽度和高度分别返回的像素个数是原来的 1/4  总的像素个数就是原来的 1/16
opts.inSampleSize = 4 ; 
Bitmap bitmap  =  BitmapFactory.decodeFile("/mnt/sdcard/big.jpg", opts);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值