粗人黄 2017-06-08 06:30 采纳率: 0%
浏览 1654

android使用Matrix进行图片旋转,空白区域如何透明

我在使用matrix对bitmap进行旋转的时候,图片到旋转成功了,但是空白区域是黑色的,要如何才能设置成透明色?
使用中发现JPG文件的图片出现以上情况,PNG旋转后空白区域是透明的。尝试在android端通过bitmap.compress将JPG转换成PNG在进行旋转,空白区域还是黑色的。
目前使用的方法是先通过decodeFromFile从文件获取bitmap,然后通过算法先计算出旋转后的图片尺寸,按新的尺寸新建一个bitmap。通过canvas绘制旋转后的图片。这样可以实现空白区域透明化,但是一旦图片尺寸过大或者旋转角度大了,就容易内存溢出!
求问该如何解决!

以下是我直接对bitmap进行matrix旋转代码
BitmapFactory.Options tempOpts = new BitmapFactory.Options();
tempOpts.inPurgeable = true;
final Bitmap bitmap = BitmapFactory.decodeStream(in, null, tempOpts);
Matrix matrix = new Matrix();
matrix.postRotate(45);
Bitmap bitmap1 = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);

  • 写回答

2条回答 默认 最新

  • Tauren2614 2017-06-08 06:51
    关注

    加上tempOpts.inPreferredConfig = Bitmap.Config.ARGB_8888;
    试试呢

    评论

报告相同问题?

悬赏问题

  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。