4.14-1 图片太大遇到的问题,Bitmap too large to be uploaded into a texture (2340x4160, max=4096x4096)

02-16 22:28:32.618 19893-19935/com.example.kodulf.devicepicture 
W/OpenGLRenderer: Bitmap too large to be uploaded into a texture (2340x4160, max=4096x4096)

解决方法:
		BitmapFactory.Options options = new BitmapFactory.Options();
                options.inSampleSize = 32;
                Bitmap bitmap = BitmapFactory.decodeFile(file.getPath(),options);
                imageView.setImageBitmap(bitmap);
参考知识点:
对于大图片而言,显示在手机程序上,图片细节已经没有意义了,
如果我们可以加载成缩略图的概念就好了。。。。。
如果直接能够从图片文件加载一个缩略之后的图片到内存里,那么就可以减少这个尺寸了。

理解为加载的就是缩略图,
使用BitmapFactoryblic void btnLoadPic(View view) {
        //大图片
        // imageView.setImageResource(R.mipmap.large_pic);


        //从大图片,在加载的时候,直接加载缩小尺寸的缩略图,(BitmapFactory)
        Resources res = getResources();
        //图片加载时,可以指定,Options参数,实际上BitmapFactory 通过Options
        // 可以将配置的参数传递给图片解码器()
        BitmapFactory.Options options = new BitmapFactory.Options();
        //图片解码的时候进行的采样比例,1代表不变,原始尺寸
        // ,2 以及一闪给,代表宽度/inSampleSize 高度/inSampleSize
        options.inSampleSize = 32;
        Bitmap bitmap = BitmapFactory.decodeResource(res, R.mipmap.large_pic,options);
        imageView.setImageBitmap(bitmap);
        //
    }
Options 代表图片在解析的时候,BitmapFactory内部应该如何处理图片内容。


Options.inSampleSize() 图片采样率,代表图片宽度以及高度按照指定的数值进行缩小,例如=4代表宽度上4个相熟,采样为1个相熟,高度同样进行处理,最终图片面积以及向叔叔变为原始图片的1/16


图片,mp3,都需要解码---------------------------------------
------------------------------------------------------------
标准的图片内存采样规则:
1:先获取图片原始的尺寸,更具尺寸进行采样率的计算,根据尺寸进行采样率的计算,利用原始尺寸与在程序界面上的显示尺寸进行计算。
2:当计算完成后,再一次进行图片的解码。并且指定采样率,直接加载降低的版本。
3:图片的二次采样。


inSampleSize的计算:
1:例如用2的倍数,来进行计算(图片解码采样2的幂,采样效率是最快的);
2:原始尺寸与目标尺寸,宽高都要进行比较。
3:其实就是缩小到涵盖目标尺寸的最小的采样值。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值