Android图片叠加效果
来源:互联网 发布:游戏推广联盟源码 编辑:程序博客网 时间:2024/05/21 03:25
- 图片叠加的处理
- 首先获取需要两张图片,并转成Bitmap类型
- 创建一张大小和背景图一致的位图
- 新建画布,并画出背景图和前景图
- 图片压缩处理
前几天工作碰到这样一个需求,将二维码与一张海报叠加,并将合成后的海报分享到微信。由于经验不足,在实现功能的过程中,碰到了这样或那样的问题,我就来分享一下我碰到的坑。
处理思路是在一张新建画布上分别将两张图片绘制出来
Bitmapbg = ((BitmapDrawable) getResources().getDrawable(
R.drawable.background)).getBitmap();
Bitmapfg = ((BitmapDrawable) getResources().getDrawable(
R.drawable.foreground)).getBitmap();
intbgWidth=bg.getWidth();
intbgHeight=bg.getHeight();
intfgWidth=fg.getWidth(); //前景图宽度,用于后面计算前景图的绘制坐标
/*这里不详细解释RGB_565和RGB_8888,RGB_6666的区别,我是因为后来分享到微信的过程中,发现图片过大,就尽量让图片更小,值得一提的是,我有试过RGB_6666,发现getConfig()图片的参数并没有变化,看了源码才知道,即使是选择RGB_6666,也会被转成RGB_8888,应该是画质太惨目忍睹了,Google便放弃了RGB_6666了*/
Bitmapnewbmp=Bitmap.createBitmap(bgWidth,bgHeight,Bitmap.Config.RGB_565);
Canvascv=newCanvas(newbmp);
//drawbginto
//在0,0坐标开始画入bg
cv.drawBitmap(bg,0,0,null);
//drawfginto
//开始画入fg,可以从任意位置画入,具体位置自己计算
cv.drawBitmap(fg,(bgWidth-fgWidth)/2,bgHeight/4*3-500,null);
在使用微信sdk分享图片的过程中,发现图片过大会导致微信拉起失败,处理思路是将缩放至原来的一半,图片占用内存自然就减少了,是不是简单粗暴呀:)
Matrixmatrix=newMatrix();
matrix.setScale(0.5f,0.5f);
Bitmap compbmp=Bitmap.createBitmap(newbmp,0,0,newbmp.getWidth(),
newbmp.getHeight(),matrix,true);
最终效果 ———>
- android 图片叠加效果
- android 图片叠加效果
- Android图片叠加效果
- android 图片叠加效果实现
- android 图片重影叠加左右切换效果
- SWT 图片叠加效果
- IOS图片叠加效果
- android 图片叠加效果——两种方法
- android 图片叠加效果——两种方法
- android 图片叠加效果——两种方法
- 图片单色渐变效果叠加
- JAVA实现图片叠加效果
- JAVA实现图片叠加效果
- Android的图片叠加
- android图片叠加代码
- android图片叠加方法
- 利用Camera实现图片叠加效果
- android 图片叠加效果——两种方法的简介与内容
- 1153: sum
- Redhat 7 安装 MySQL 5.7.10, 安装JDK 1.7, 安装Tomcat 7.0 配置web服务器
- 立方尾不变
- C#版三层登录实例:问题调试
- RocketMQ原理(2)——核心概念及术语
- Android图片叠加效果
- HDFS 架构官文理解
- poi 更新word中的指定格式的 文字
- web前端学习攻略
- [资料整理]将场景文字数据集ICDAR2013,ICDAR2015,ICDAR2017转换为PASCAL_VOC数据集格式
- Hadoop
- RocketMQ原理(3)——水平扩展及负载均衡详解
- Beginning configuration step: Starting Server Starting MySQL as a service 解决方案
- 第一次使用 CSDN-markdown编辑器