Bitmap.createBitmap(width,height,Config)创建出来的bitmap对象是什么?

Geek-Michael 2015-08-28 03:23:38

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

iv1 = (ImageView) findViewById(R.id.iv1);
iv2 = (ImageView) findViewById(R.id.iv2);


Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher);
iv1.setImageBitmap(bitmap);

Bitmap alterbitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());

Canvas canvas = new Canvas(alterbitmap);
Matrix matrix = new Matrix();


// 设置缩放的倍数
matrix.setScale(2.0f, 1.0f);
// 以原图为中心旋转45度
matrix.setRotate(90, bitmap.getWidth()/2, bitmap.getHeight()/2);
Paint paint = new Paint();
// 设置画笔消除锯齿,可以减少处理图片时图片中点的损失,从而让图片显示得更清晰
paint.setAntiAlias(true);

//为什么下面方法中被编辑的bitmap是原始bitmap而不是alterbitmap ?bitmap不是不可修改的吗?创建出来的alterbitmap又有///何特点?
canvas.drawBitmap(bitmap, matrix,paint);
iv2.setImageBitmap(alterbitmap);

}



...全文
674 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
=10_01= 2015-08-28
  • 打赏
  • 举报
回复
想象下 PS 就好理解了,Bitmap alterbitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight() 创建了原 bitmap 一样大小的空的bitmap,调用 canvas.drawBitmap(bitmap, matrix,paint) 根据 matrix 将原 bitmap 画到 alterbitmap 里,并没有直接对原 bitmap 操作。
Geek-Michael 2015-08-28
  • 打赏
  • 举报
回复
请问为什么canvas.drawBitmap(bitmap, matrix,paint); 中设置成刚开始解码出来的bitmap而不设置成创建出来的 alterbitmap 呢? bitmap.getConfig()中包含一些什么属性信息呢?谢谢!
gao_chun 2015-08-28
  • 打赏
  • 举报
回复

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧