以编程方式裁剪位图的底部部分

2024-01-10

我有一张从相机拍摄的位图。我想裁剪图像,使其只留下底部部分。裁剪后的图像应比原始位图的高度低 80%,因此我只需要从左边缘开始的底部部分的 20%。

我在代码中明确地执行此操作,没有任何 Android 裁剪意图。

一张图片来形象化我想要实现的目标:

我已经使用以下代码设法裁剪位图的顶部部分:

final Bitmap toBeCropped = BitmapFactory.decodeFile(mFile.getPath());

final BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
bitmapOptions.inTargetDensity = 1;
toBeCropped.setDensity(Bitmap.DENSITY_NONE);

int fromHere = (int) (toBeCropped.getHeight() * 0.2);
Bitmap croppedBitmap = Bitmap.createBitmap(toBeCropped, 0, 0, toBeCropped.getWidth(), fromHere);
mPreviewHalf.setImageBitmap(croppedBitmap);

但我找不到从顶部开始裁剪 80% 的方法。我正在考虑获取位图的 y 坐标,以便我可以裁剪任何图像尺寸并始终仅获取底部部分。但有人能指出我如何从位图中获取这个坐标吗?或者我必须从布局本身中获取它?


我不熟悉位图上的操作,但通过检查您的代码并查看API https://developer.android.com/reference/android/graphics/Bitmap.html#createBitmap(android.graphics.Bitmap,%20int,%20int,%20int,%20int)我的猜测是您需要在下面的行上指定 y 坐标以匹配起点:

Bitmap croppedBitmap = Bitmap.createBitmap(toBeCropped, 0, "here", toBeCropped.getWidth(), fromHere);

所以我的猜测是这样的:

Bitmap croppedBitmap = Bitmap.createBitmap(toBeCropped, 0, (toBeCropped.getHeight() * 0.8), toBeCropped.getWidth(), fromHere);

在这种情况下fromHere将定义您想要裁剪的行数而不是起点(正如您所指出的,这是总数的 20%)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式裁剪位图的底部部分 的相关文章

  • 从可打开的 URI 将本机 fd int 传递到 FFMPEG

    我正在尝试从打开一个文件描述符CATEGORY OPENABLE来自存储访问框架的 URI 我首先尝试使用 SD 卡上的文件 我已经可以使用以下命令将其解析为文件路径 data列并打开 我试图避免这样做 而是使用文件描述符 我得到的原生 i
  • 在 Android 中录制、保存和播放视频

    我正在尝试制作一个使用相机应用程序录制视频的应用程序 然后将该视频保存在 SD 卡上 以便我可以播放它 我有一些代码 但我不知道如何继续 因为我是 Android 初学者 我的活动 public class Camcorder extend
  • 如何在 Android 中获取 SD 卡上文件夹的大小?

    是否可以轻松获取SD卡上文件夹的大小 我使用文件夹来缓存图像 并希望显示所有缓存图像的总大小 除了迭代每个文件之外 还有其他方法吗 它们都位于同一个文件夹中 只需浏览所有文件并将它们的长度相加即可 Return the size of a
  • 使用 shouldInterceptRequest 阻止数据加载

    虽然这个问题已经被问过好几次了 但与我的问题真正相关的唯一问题是这个 我可以使用 shouldInterceptRequest 来阻止 Android 中的特定调用吗 https stackoverflow com questions 16
  • Android studio 不让我安装 Android SDK 平台

    一切都工作正常 直到我导入 Esclipse Lollipop 示例并出现以下错误 我在 Mac OS X 上遇到了完全相同的问题 以下是我修复它的方法 cd Library Android sdk tools android update
  • Android - 缩放和压缩位图

    我正在开发一个 Android 应用程序 它具有相机捕捉和照片上传功能 如果设备具有高分辨率相机 则捕获的图像尺寸将非常大 1 3MB或更大 由于应用程序需要将此图像上传到服务器 因此我需要在上传之前压缩图像 例如 如果相机拍摄了 1920
  • 如何限制可以选中的复选框数量? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 透明模糊视图模糊了下面的布局

    我有一个已设为透明的 Linearlayout 现在我正在寻找一种方法来赋予它模糊效果 因此它下面的内容会变得模糊 就像 Windows 7 Aero 外观一样 参见屏幕截图 我知道你可以做这样的模糊效果 getWindow addFlag
  • 尝试在空对象引用上调用接口方法“...”

    我正在开发一个具有蓝牙功能的应用程序 我使用片段来扫描并列出蓝牙设备 单击时 会回调提供所选蓝牙设备的主要活动 我从使用 Android 6 API 23 的智能手机开始 然后必须调整代码以用于 Android 5 0 API 21 我刚刚
  • FloatingActionButton 不隐藏

    我试图隐藏我的 FloatingActionButtonfabLocation以编程方式 fabLocation setVisibility View GONE 但它不起作用 如果我添加android visibility gone 在我的
  • 在 Android 中将连续动画应用到 ImageView

    我想将连续的动画 例如 ScaleAnimation 应用到显示资源图像的 ImageView 动画由按钮触发 例如 我想在每次单击按钮时逐渐放大图像 我已在动画上设置 fillAfter true 但是 所有动画都是从 ImageView
  • 将mapView缩放到osmdroid上的某个边界框

    我想使用 ZoomToBoundingBox 方法将地图缩放到特定的边界框 该方法除了以缩放级别 0 显示地图外什么也不做 在mapView java源代码中我发现了这个 缩放地图以尽可能靠近地包围指定的边界框 必须在显示布局完成后调用 否
  • 如何从内存中清除动态创建的视图?

    我试图从记忆中清除一些观点 情况是这样的 我有一个活动 我将其称为 A 另一个称为 B 现在 我在 Activity A 中按下一个按钮 该按钮调用 Activity B 动态创建大量视图 之后 我按后退按钮返回到活动 A 多次重复这两个步
  • 如何在单击时使图像抖动/摆动?

    我有一个图像按钮 我想在触摸它时摇动 摆动 我希望它能够像 iPhone 应用程序图标在被长时间按下时那样摆动 Thanks 尝试使用这个
  • 在 KtorClient 的 DefaultRequest 中声明 ContentType = Application.Json 后,我可以更改特定请求的 ContentType 标头吗

    我正在开发我的 android 项目 我正在创建一个请求函数来上传文件 该函数发出如下请求 httpClient put uri body MultiPartFormDataContent formData append file file
  • 画廊新媒体如何播放?

    我试图收到有关添加到手机图库的新图片或视频的通知 我需要获取新媒体的 URI 目的是让我可以自动备份它 因此 我需要一个在后台设置的寄存器来连续侦听或检查添加到图库的新媒体 并捕获 Uri 这过去是通过广播接收器完成的 例如
  • RecyclerView:调整项目大小的动画

    我有一个RecyclerView 回收者视图的每个项目都可以展开或不展开 同一时间只能展开一项 本质上 我试图在棒棒糖拨号器中重新创建历史列表 我发现在 RecyclerView 上使用 LayoutTransition https sta
  • ImageView adjustViewBounds 不适用于相对布局

    我有一个ImageView并已设置其layout height为 100dp 其layout width为 wrap content 使用的绘图具有更大的实际尺寸 为 130dp 宽度 X 215dp 高度 当 的时候ImageView被放
  • Android 位图内存问题 - 错误:8294416 字节分配内存不足

    我目前正在开发一个讲述故事的应用程序 该故事包含 场景 其中包含通过 ImageView 显示的多个 JPEG 和 PNG 文件 我创建 ImageView 并通过以下函数将其添加到布局中 private ImageView newImag
  • Ionic 3 Deeplinking - 从 URL 启动应用程序

    我正在使用 Ionic 开发一个跨平台应用程序 当尝试实现深度链接时 我安装了一个名为 Ionic Native 插件深层链接 我运行了这些命令 ionic cordova plugin add ionic plugin deeplinks

随机推荐

  • 如何使用 ExtJS 更改光标

    我想设置网格的一列 以将光标悬停后更改为指针 我不知道应用样式是否是最佳实践 请告诉我 我就是想不通 这是我的代码 我希望该列能够在鼠标悬停时改变光标 Ext define Ext grid Panel store services xty
  • Java 并集、交集和差集的集合方法[重复]

    这个问题在这里已经有答案了 我编写了一个包含两个不同数字集合的程序 我想知道如何从这两个集合中获得并集 交集和集合差 我知道 BitSet 有方法 但这些方法在这里不起作用 public class Collections public s
  • Anaconda pip 离线安装包括依赖项(tensorflow)

    我想在没有互联网连接的系统上的 anaconda 环境中安装 tensorflow 并且我没有 root 访问权限 即我只想将其安装到本地用户 我已经下载了tensorflow的 whl文件和所需的依赖项 并将它们复制到我要使用的机器上 进
  • 从 infix 更改为 postfix 有什么好处?

    我今天看书了 它引入了从中缀变为后缀的算法 有什么好处 提前致谢 其一 与计算中缀表达式不同 您可以借助堆栈从左到右一次扫描轻松计算后缀表达式 其次 后缀表达式中不需要括号和优先规则等概念
  • 是否可以在 pandas 中使用自定义过滤器功能?

    我可以使用我的辅助函数来确定投篮是否为三指针作为 Pandas 中的过滤函数吗 我的实际功能要复杂得多 但我针对这个问题简化了它 def isThree x y return x y 3 print data isThree data x
  • 如何在iphone中获取gmsmapview的坐标中心

    我正在使用新的 iOS 版 Google 地图 SDK 我可以从 GMSMapView center 获取真实坐标吗 现在它返回一个 CGPoint 的值 但它不是真正的坐标 感谢和问候 Use the projection method
  • 从 Kotlin 隐藏静态 Java 方法

    我们正在将许多 java 静态方法转换为 kotlin 扩展函数 然而 我们需要保留一些 JUST FOR JAVA 的方法 我们希望强制 kotlin 代码使用扩展函数 有没有办法从 kotlin 中隐藏 java 静态方法 您可以使用注
  • Google Apps脚本:复制电子表格非常慢

    我有一个 Web 应用程序 其中脚本连接到电子表格 在脚本中 我从电子表格中查找文件的 ssid 打开该文件 然后复制并重命名它 相关行如下所示 var copy SpreadsheetApp openById ssid copy newN
  • sonarqube 忽略 sonar.junit.reportPaths

    我有一个 gradle 项目 它应用了 sonarqube gradle 插件 版本 2 6 我在我团队的 sonarqube 服务器版本 6 4 版本 25310 上运行它 根据文档 https docs sonarqube org di
  • å 在 xml 文件中是否有效?

    IE 不喜欢在 XML 文件中显示 字符 这是一个 IE 问题还是 和类似的字符确实是无效的 XML 我是否必须创建 xx 所有这些字母的值 Michel 顺便说一句 字符位于 CDATA 标记内 声明是这样的 嗯 似乎无法将 xml 声明
  • 角度 4 中的 html2canvas

    我可以在 Angular 4 中使用 html2canvas 截取屏幕截图 但我需要使用 http post 调用将字符串图像发送到服务器端 成分 import Component OnInit NgZone from angular co
  • 如何覆盖Visual Studio 2017社区的编译命令[重复]

    这个问题在这里已经有答案了 我想用一个简单的 shell 脚本覆盖默认的 Visual Studio C 编译器 我想要的是捕获参数 例如文件名 并创建一些统计信息 但是我想完全覆盖编译过程 也就是说 我想从我的 shell 脚本调用原始编
  • 模拟滚动视图内的拖动

    我正在努力拦截并重新发送发送到滚动视图的手势 我想做的事 杀死滚动视图中的所有手势识别器 我已经做到了这一点 在滚动视图中添加新的手势识别器 我也做到了这一点 使新识别器的行为与旧识别器相同 我还没有做到这一点 我需要帮助才能做到这一点 我
  • Boto - AWS SNS 如何提取主题的 ARN 号

    创建 AWS SNS 主题时 a conn create topic topicname 或获取已创建的主题 a conn get all topics 结果是 u CreateTopicResponse u ResponseMetadat
  • 如何减少 python 导入包的 Visual Studio 代码中的自动完成延迟?

    我正在使用 python 3 7 3 和 Visual Studio 代码 1 33 1 当我导入任何库 如 cv2 或 numpy 并尝试使用它时 自动完成需要 4 5 秒来识别函数 当我使用 print slice 等默认函数时 它们会
  • 是否必须使用 typedef 将 size_t 定义为五种标准无符号整数类型之一?

    C11标准写道 6 2 5 类型 4 有五个标准有符号整数类型 指定为signed char short int int long int and long long int 因此 五种标准无符号整数类型将是unsigned char un
  • 无法在 Android Studio 3.0 AVD Manager 或 SDK Manager 中下载系统映像

    When I try to list and download system images in AVD Manager nothing shows up in the list See below None of the three ta
  • Java 是否通过具有标记为 Final 的单个实现者的接口来优化方法调用?

    如果我引用一个类并调用它的方法 并且该类或方法是最终的 我的理解是编译器或 JVM 会用更便宜的静态分派替换动态分派 因为它可以准确确定哪个版本将被调用 但是 如果我有一个接口的引用 并且该接口当前只有一个实现者 并且该实现者是最终的或者该
  • 什么时候我们需要将数组的大小作为参数传递

    我对在 C C 中传递数组有点困惑 我看到一些签名是这样的情况 void f int arr 有些是这样的 void f int arr int size 有人可以详细说明有什么区别以及何时以及如何使用它吗 首先 传递给函数的数组实际上传递
  • 以编程方式裁剪位图的底部部分

    我有一张从相机拍摄的位图 我想裁剪图像 使其只留下底部部分 裁剪后的图像应比原始位图的高度低 80 因此我只需要从左边缘开始的底部部分的 20 我在代码中明确地执行此操作 没有任何 Android 裁剪意图 一张图片来形象化我想要实现的目标