Android Bitmap保存没有透明区域

2024-01-09

我想保存没有透明区域的位图。

位图具有大的透明像素。

所以我想删除它

我怎样才能做到这一点?

我无法添加图片,所以用符号解释。

我不想裁剪功能。 我希望使用过滤器

┌────────────────────────┐

│ 透明区域

│ ┌────────┐

│ 裁剪这个
└────────┘
└────────────────────────┘


要查找位图的非透明区域,请在 x 和 y 中迭代位图并查找非透明区域的最小值和最大值。然后将位图裁剪到这些坐标。

Bitmap CropBitmapTransparency(Bitmap sourceBitmap)
{
    int minX = sourceBitmap.getWidth();
    int minY = sourceBitmap.getHeight();
    int maxX = -1;
    int maxY = -1;
    for(int y = 0; y < sourceBitmap.getHeight(); y++)
    {
        for(int x = 0; x < sourceBitmap.getWidth(); x++)
        {
            int alpha = (sourceBitmap.getPixel(x, y) >> 24) & 255;
            if(alpha > 0)   // pixel is not 100% transparent
            {
                if(x < minX)
                    minX = x;
                if(x > maxX)
                    maxX = x;
                if(y < minY)
                    minY = y;
                if(y > maxY)
                    maxY = y;
            }
        }
    }
    if((maxX < minX) || (maxY < minY))
        return null; // Bitmap is entirely transparent

    // crop bitmap to non-transparent area and return:
    return Bitmap.createBitmap(sourceBitmap, minX, minY, (maxX - minX) + 1, (maxY - minY) + 1);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Bitmap保存没有透明区域 的相关文章

  • Espresso - 检查使用按钮按下意图打开哪个活动?

    是否可以跟踪按下某个按钮后打开了哪个 Activity 我有一个测试 其中当单击 按下按钮时 it 向服务器发送请求 直到发送请求时 它打开一个活动 验证是否执行成功在测试中 我需要检查打开的 Activity 是什么 我的测试示例 检查
  • 合并两个位图图像(并排)

    任何人都可以帮助将两个位图图像合并为单个位图 在android中 并排 谢谢 尤瓦拉吉 您可以使用Canvas 查看这篇文章 http www jondev net articles Combining 2 Images in Androi
  • 如何改变android中menuItem的背景颜色?

    我正在以编程方式将菜单项添加到菜单中 我想在选择特定项目时添加背景颜色 如何为 menuItem 添加背景 您的回答将不胜感激 虽然其他答案提供了更改样式 这会影响all菜单项 据我了解 需要更改一个菜单项 我建议你使用android ac
  • 启动 Twitter 应用程序 [重复]

    这个问题在这里已经有答案了 可能的重复 Twitter 应用程序的 Android Intent https stackoverflow com questions 2077008 android intent for twitter ap
  • Google Inbox 类似 RecyclerView 项目打开动画

    目前 我正在尝试实现 Google Inbox 例如RecyclerView行为 我对电子邮件打开动画很好奇 我的问题是 该怎么做 我的意思是 他们使用了哪种方法 他们用过吗ItemAnimator dispatchChangeStarti
  • 方法断点可能会大大减慢调试速度

    每当向方法声明行添加断点 在 Intellij IDEA 或 Android Studio 中 时 都会出现一个弹出窗口 方法断点可能会大大减慢调试速度 为什么会这样戏剧性地减慢调试速度 是我的问题吗 将断点放在函数的第一行有什么不同 Th
  • OpenCV InRange 参数

    我在 Android 上使用 OpenCV 来实时查找特定颜色的圆圈 我的第一步是仅保留与我正在寻找的定义颜色相对应的像素 在本例中为红色或绿色 示例图像 https i stack imgur com CIozU jpg 为此 我正在使用
  • Android 手机应用意图

    我想在手机上启动手机应用程序作为意图 我正在使用这个代码 startActivity getPackageManager getLaunchIntentForPackage com android phone 但该函数抛出一个空指针异常 因
  • Android 在启动时启动服务,如何在设备重启后重新启动服务类?

    我需要在启动时启动一项服务 我搜索了很多 他们正在谈论广播接收器 由于我是 Android 开发新手 所以我对 Android 上的服务并没有清楚的了解 请提供一些源代码 您的接收者 public class MyReceiver exte
  • invalidateOptionsMenu 在片段中不起作用

    显示或隐藏项目ActionBar根据文本中是否有文本EditText or not 所以 我做了以下事情 public class NounSearch extends android app Fragment EditText seach
  • Facebook LoginActivity 未正确显示

    我有一个使用 Facebook 登录的应用程序 我有 FacebookSDK 并且使用 com facebook LoginActivity 问题是 在 10 英寸平板电脑上 当显示软键盘时 活动无法正确显示 我使用的是 Samsung G
  • 更改android中禁用按钮的颜色

    有没有办法通过样式或其他形式更改 android 中禁用按钮的颜色 我目前有以下内容 可绘制 button default xml
  • Android开发:未定义方法

    大家好 我是 Android 和 Eclipse 的新手 我刚刚遵循了developer android com 上的教程 现在我在添加操作栏 http developer android com training basics actio
  • 如何在android中录制音频时暂停背景音乐

    我正在 Android 中开发一个音频记录应用程序 因此 如果设备音乐播放器中已播放任何背景音乐 则应在开始录制之前暂停该背景音乐 并且每当录制停止或暂停时 背景音乐都应恢复 播放录制的音频时也应该如此 有人可以帮我解决这个问题吗 提前致谢
  • 带有空白白屏的 WebView

    我在 DialogFragment 中有一个 webview 它使用以下方式显示文档和 PDF它可以进行几次尝试 但如果用户尝试频繁打开和关闭对话框 webview 将显示空白屏幕 我已经尝试了所有的线程link1 https stacko
  • Google Android Drive api 在已安装版本上登录失败

    我开发了一个使用 GoogleDrive api 的 Android 应用程序 当处于调试状态或运行调试版本时 应用程序 工作正常 并正确验证附加的谷歌帐户 等 当我构建发行版本时 使用我的签名密钥 并且 安装apk文件 当我运行时 Goo
  • WebView 在某些设备上如果不长按则不会滚动

    我有一个 WebView 设置如下 the web view mWebView WebView findViewById R id webView push the url on to the web view mWebView loadU
  • Android:获取最新意图

    如何获取发送到活动的最后一个意图 的文档onNewIntent 建议我需要做这样的事情 class MyActivity public void onNewIntent Intent intent setIntent intent reac
  • 修改 ADW Android 启动器?

    我想更改和修改开源 ADW 启动器 启动器可在此处获取 https github com AnderWeb android packages apps Launcher https github com AnderWeb android p
  • 尝试使用带有有效购买令牌的 Java Google Play Developer API v3 检索应用内购买信息时出现错误请求(无效值)

    当使用 Java Google Play Developer API 版本 3 并请求有效购买令牌的购买信息时 我收到以下异常 API 调用返回 400 Bad Request 响应以及以下消息 code 400 errors domain

随机推荐

  • 如何让 JavaScript 随着时间的推移(而不是立即)写入结果?

    我有一个程序 它会写入很多 if 结果 例如 这个 const a prompt for let i 1 i lt a i console log i 不是实际的代码 因此 当您输入一个大数字时 会有大量答案等待输入控制台 因此 当达到某个
  • Pandas - 如何检查多索引列是否存在

    我的问题类似于如何检查 Pandas 中是否存在列 https stackoverflow com questions 24870306 how to check if a column exists in pandas但对于多索引列的情况
  • 当我尝试首先使用 EF5 代码对数据库进行逆向工程时出现异常

    该视频向我展示了如何从现有数据库使用 Code First http msdn microsoft com en us data jj572367 http msdn microsoft com en us data jj572367 所以
  • 如何从 scala play 访问发布数据?

    我有一条类型为 POST 的路线 我正在将发布数据发送到页面 我如何访问该帖子数据 例如 在 PHP 中您使用 POST 如何访问 scala 和 play 框架中的发布数据 从 Play 2 1 开始 有两种方法获取 POST 参数 1
  • Google 应用程序引擎示例应用程序抛出 503

    我已经设置了 Google 应用引擎的示例 android本教程 https developers google com cloud samples mbs getting started 当我在 EditText 中输入内容并按发送按钮时
  • 手工滚动 SOAP 请求

    我正在尝试构建一个手动 HTTP 请求 以便从我认为相当简单的 SOAP Web 服务调用返回响应 但是 我在正确构建请求时遇到了困难 并且没有得到我期望的响应 适用的wsdl声明 wsdl 目标命名空间 targetNamespace h
  • 如何更改 FullCalendar 中选定日期的背景颜色

    我正在尝试更改日历中所选日期的背景颜色 在我的下面的代码中 它突出显示所有点击的日期 我怎样才能只突出显示最后点击的日期 dayClick function day var mydate new Date this 0 getAttribu
  • 将时间序列中的分类列扩展到多个每秒计数列

    进行以下转变的最佳方式是什么 此转换分为两个部分 第一个是将速度转换为每秒平均值 第二种方法是获取分类列并将其转换为多列 每个分类值一列 其中该值是每秒发生的次数 例如 输入 xts A Time PosixCT Observed Lett
  • 使用 Javascript Regex 将字符换行到字符串中,不包括链接标签

    EDIT 这就是我必须做的 想象一下 如果我有一个文本 里面有一些 html 标签 它仍然是一个字符串 var string p Hello my name is Mauricio p p Hi my name is Patricia p
  • 在程序中替换 if..else if..else 树的最佳方法是什么?

    这个问题是由我最近开始经常看到的事情引起的 if else if else结构 虽然它很简单并且有它的用途 但它的一些东西一遍又一遍地告诉我 它可以被更细粒度 更优雅并且通常更容易保持最新的东西所取代 尽可能具体 这就是我的意思 if i
  • 下拉android时SwipeRefreshLayout加载程序不会上升

    我已经将 SwipeRefreshLayout 与 recyclerview 一起使用 它在所有 android 版本中工作正常 但在 Kitkat 中 当我下拉时 SwipeRefreshLayout 加载程序不会上升 也不会刷新 rec
  • ggplot2 中的圆形直方图,条形间距均匀且没有多余的线条

    我正在努力在 ggplot2 中制作一个圆形直方图 以显示 24 小时内呼叫数量的变化情况 我的数据集从 0 开始到 23 每小时的调用次数 df data frame xvar 0 23 y c 468 520 459 256 397 2
  • 实体框架:重新查找最近添加到上下文中的对象

    我正在使用实体框架 并且在 重新查找 我刚刚创建的对象时遇到问题 基本上是这样的 string theId someId private void Test using MyEntities entities new MyEntities
  • 表达 res.download()

    我不知道为什么会这样 但这真的很烦人 我预计该文件将根据快速文档 https expressjs com en api html res download 我有下一个代码 in react App js download gt const
  • 在 PowerShell 中打开所选应用程序中的文件

    我想使用 PowerShell 中的 cmdln 和特定应用程序打开一个文件 就我而言 我有一个文件scripts js我想打开它Notepad 但通常会定期开放notepad exe如果我这样做 Invoke Item scripts j
  • 基类不包含无参数构造函数?

    我通过删除一些空的构造函数来使我的构造函数更加严格 我对继承还很陌生 并且对我得到的错误感到困惑 基类不包含无参数构造函数 如何让 A2 继承 A 而 A 中没有空构造函数 另外 根据我个人的理解 为什么 A2 需要 A 的空构造函数 Cl
  • 在 jspdf.debug.js 中哪里可以更改默认的 pdf 页面宽度和字体大小?

    我需要更改默认 pdf 页面宽度和字体大小在 jspdf debug js 中 在哪里以及如何更改 jspdf debug js 中的默认值 除了使用默认格式之一之外 您还可以以指定的单位指定任何大小 例如 Document of 210m
  • “!!”有什么用? (否定两次)? [复制]

    这个问题在这里已经有答案了 可能的重复 C 代码中的双重否定 https stackoverflow com questions 248693 double negation in c code 比方说 bool var true 它将为变
  • 什么是http多部分请求?

    我编写iPhone应用程序已经有一段时间了 向服务器发送数据 接收数据 通过HTTP协议 没有考虑太多 大多数情况下 我理论上熟悉流程 但我不太熟悉的部分是 HTTP 多部分请求 我知道它的基本结构 但我不知道它的核心 似乎每当我发送非纯文
  • Android Bitmap保存没有透明区域

    我想保存没有透明区域的位图 位图具有大的透明像素 所以我想删除它 我怎样才能做到这一点 我无法添加图片 所以用符号解释 我不想裁剪功能 我希望使用过滤器 透明区域 裁剪这个 要查找位图的非透明区域 请在 x 和 y 中迭代位图并查找非透明区