返回

缩放图片并加载到内存中

发布时间:2022-12-07 14:06:15 335
# 设备

计算机图形处理的原理
计算机在表示图形的时候使用像素点来表示,每个像素点都是使用一个颜色来表示,
每个颜色都是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);

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
监听用户打开的应用程序 2022-12-07 13:37:51