首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将位图的Uri发送到其他活动时,使位图的背景透明android

在Android中,要将位图的Uri发送到其他活动并使位图的背景透明,可以按照以下步骤进行操作:

  1. 首先,从Uri获取位图对象。可以使用以下代码将Uri转换为位图对象:
代码语言:txt
复制
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), uri);
  1. 接下来,创建一个新的位图对象,将其设置为与原始位图相同的宽度和高度,并且使用ARGB_8888像素格式,以支持透明度:
代码语言:txt
复制
Bitmap transparentBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
  1. 然后,创建一个画布对象,并将其与新的位图对象关联起来:
代码语言:txt
复制
Canvas canvas = new Canvas(transparentBitmap);
  1. 在画布上绘制位图,并使用PorterDuff.Mode.CLEAR模式将位图的背景设置为透明:
代码语言:txt
复制
canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
canvas.drawBitmap(bitmap, 0, 0, null);
  1. 最后,将新的位图对象转换为可传递的数据类型,例如ByteArrayOutputStream或Base64字符串,以便将其发送到其他活动:
代码语言:txt
复制
ByteArrayOutputStream stream = new ByteArrayOutputStream();
transparentBitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();

现在,你可以将byteArray发送到其他活动,并在接收端重新构建位图对象。

这种方法可以用于在Android应用程序中实现位图的背景透明,并且适用于各种场景,例如在图像编辑应用程序中添加透明背景,或在聊天应用程序中发送带有透明背景的图像。

腾讯云相关产品和产品介绍链接地址:

请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

emwin教程_emwin教程

基本思路: 内存设备消除屏幕闪烁基本思路很简单,不使用内存设备,每一步绘制操作都会直接写入屏幕,这就导致屏幕刷新内容出现闪烁,例如要显示一张位图并在位图上绘制透明文本,首先必须绘制位图,然后绘制透明文本...:默认值,内存设备使用透明标志创建,该标志确保正确 绘制背景; GUI_MEMDEV_NOTRANS:创建不透明内存设备,必须正确绘制背景。...窗口就是应用程序对应一个个矩形区域,而窗口管理器用来管理这些矩形区域。 一些术语: 活动窗口:当前用于绘图操作窗口称为活动窗口。...但是,如果一个窗口部分区域被子窗口或任何其他窗口覆盖,那么被覆盖窗口将会重复接收到若干次 WM_PAINT 消息。 窗口管理器窗口未被覆盖区域裁剪成若干子矩形。...因此,在处理WM_PAINT 消息程序中不应该执行费时操作。 渲染透明窗口 如果需要绘制或重绘透明窗口,窗口管理器将自动确保在透明窗口收到 WM_PAINT 消息之前绘制窗口背景

5.3K40
  • AndroidBitmap详细介绍

    注意:以上set方法,均有对应post和pre方法,Matrix调用一系列set,pre,post方法,可视为这些方法插入到一个队列. 当然,按照队列中从头至尾顺序调用执行....dstWidth 新位图期望宽度 dstHeight 新位图期望高度 filter 为true则选择抗锯齿 补充抗锯齿知识点 在Android中,目前,我知道有两种出现锯齿情况。...第一个函数是用来防止边缘锯齿, (true图像边缘相对清晰一点,锯齿痕迹不那么明显, false,写上去字不饱满,不美观,看地不太清楚)。 第二个函数是用来对位图进行滤波处理。...这个时候,由于你不能控制位图绘制, 只能用其他方法来实现防止锯齿。 另外,如果你画位图很多。 不想每个位图绘制都传入一个Paint。...) private void crop(Uri uri) { // 裁剪图片意图 Intent intent = new Intent("com.android.camera.action.CROP

    2.4K10

    GDI透明贴图

    //如果一个彩色位图向单色位图转换,那么彩色位图背景色转换到单色位图中则为1(白色),其他则转换为0(黑色)。..., 255)); // 设置背景色,也就是源位图透明色,假设为白色,我们一般做素材背景做成白色, // 在下面,生成掩码图,跟背景相同会转换为白色,其他颜色转换为黑色 CBitmap...,跟没操作一样 // 透明位图就是利用这个特性,位图异或方式拷贝到显示DC两次 // 但是异或拷贝两次的话,那么源位图将不显示,换种说法就是整张位图都被透明了 // 这可不是我们想要结果...,我们目的只是背景透明,所以我们还需要在这两次 // 异或操作中加入其他操作来实现我们想要结果,这时候就需要上面准备“掩码”DC来帮忙了 dcClient.BitBlt(0, 0, btinfo.bmWidth..., btinfo.bmHeight, &dcMask, 0, 0, SRCAND); // 掩码DC内单色位图跟上面的结果进行与操作,目的是需要透明地方保留不变,这样下次再次用源图异或

    2.8K60

    速读原著-Android应用开发入门教程(图像、图形、文本基本绘制)

    9.2 图像、图形、文本基本绘制 Android 中基本绘制包括了图像、图形和文本绘制。...本程序在界面上自上而下一共绘制了 3 个内容,第一个是一个原始位图,第二个是经过变化位图,第三个是几何图形。...在这个示例程序中,主要通过一个自定义 SampleView 设置成活动 View 作为其中 ContentView。...Bitmap mBitmap2 = mBitmap.extractAlpha(); // 提取位图透明通道 // 创建一个位图...;第 2 个图是在原始图像基础上抽取了透明通道,所以绘制画笔(Paint)颜色起到了作用;第 3 个图是调用 drawIntoBitmap()绘制了一个具有渐变颜色圆,并附加了文字。

    42010

    android学习笔记----关于图形基本处理讲解

    任何值<= 1都被视为1.注意:解码器使用基于2最终值,任何其他向下舍入到最接近2幂。...参数 bitmap Bitmap:要绘制位图 这个值绝不能是null. matrix Matrix:用于在绘制位图转换位图矩阵。 这个值绝不能是null. paint Paint:可能为空。...注意:并非所有Formats都直接支持所有位图配置,因此BitmapFactory返回位图可能位于不同bitdepth中,和/或可能丢失了每像素alpha(例如,JPEG仅支持不透明像素)。...88*4=352) 我们这里是在应用需要存储空间和应用需要处理能力之间找到一个折中,当我们提供多个版本资源,应用的确会占用更多存储空间 但是却需要更少处理能力,对于移动设备来说,这是一个非常值得达成折中点...其他以此类推。

    64520

    【STM32H7教程】第56章 STM32H7DMA2D应用之刷色块,位图和Alpha混合

    前景层里面起始坐标(40,30),长480,高272数据与背景层里面起始坐标(50,40),长480,高272数据复制到输出区起始地址(60,50),长480,高272区域。...56.3.4   转换PNG图片为RGB565格式位图 转换方法与56.4.1小节相似,主要下面两个地方不同:   第1点不同:使用电脑端画图小软件前面下载图标转换为BMP格式(PNG图片中透明通道会滤被掉...使用举例: 大小128*128,颜色格式为RGB565位图绘制到LCD起始坐标为(176, 168)区域,输出颜色格式也配置为RGB565,透明度设置为200(255表示完全不透明,0表示完全透明...第4个图:两个位图混合。 第5个图:Alpha透明度200位图显示。 第6个图:Alpha透明度100位图显示。...第4个图:两个位图混合。 第5个图:Alpha透明度200位图显示。 第6个图:Alpha透明度100位图显示。

    1.3K10

    bitblt函数 透明底图_手绘楼盘摆位图怎么画

    CDC::BitBlt函数,应用在GDI绘图中,有时候我们需要显示位图有一部分是透明,例如在棋类游戏中,棋盘图片和棋子图片融合时候,棋子边缘应该是透明。...BitBlt函数转换“单色位图”(源)到“彩色位图”(目的),会将“单色位图”中“1”转化为背景色(目的背景色),“0”转化为前景色(目的前景色)。...BitBlt函数转换“彩色位图”(源)到“单色位图”(目的)“彩色位图”中像素值等于“背景色”(通过pdcSource->SetBkColor(…)设置)像素转化为“单色位图”中为“1”,其他像素值变成了...) 对应到单色位图1,其他值变为0 dcMonoChrome.BitBlt(0,0,bitmapInfo.bmWidth,bitmapInfo.bmHeight,&dcSource,0,0,SRCCOPY...返回文章开头提到,棋子周围图片透明处理。

    60130

    Android各种Drawable类详解

    视图View背景就是一个Drawable对象,在视图需要进行绘制而调用draw函数,内部一部分实现会将调用委托给背景属性mBackground这个Drawable对象draw函数来完成背景绘制...类构造指定一个颜色,或者调用setColor指定颜色,setAlpha函数会把设置透明度和本来颜色透明度相乘。这个可绘制类用来实现简单单颜色绘制。...BitmapDrawable 位图可绘制类 位图可绘制类。在构造指定一个Bitmap对象或者一个位图文件。位图显示需要指定:像素和设备尺寸映射,显示位置,显示模式三种属性。...当为某个视图设置了一个StateListDrawable类型背景,那么当视图处理某个state背景就会根据特定state不同而显示不同背景。...我们也可以把一个Piture对象内容绘制到其他画布中去: public void draw(Canvas canvas) //绘制到某个画布去 PictureDrawable类draw实现就是绘制工作委托给了

    1.6K20

    【STM32F429】第6章 ThreadX GUIX上手之STM32F429 DMA2D加速

    前景层里面起始坐标(40,30),长480,高272数据与背景层里面起始坐标(50,40),长480,高272数据复制到输出区起始地址(60,50),长480,高272区域。...6.3.4 转换PNG图片为RGB565格式位图 转换方法与56.4.1小节相似,主要下面两个地方不同: 第1点不同:使用电脑端画图小软件前面下载图标转换为BMP格式(PNG图片中透明通道会滤被掉...使用举例: 大小128*128,颜色格式为RGB565位图绘制到LCD起始坐标为(176, 168)区域,输出颜色格式也配置为RGB565,透明度设置为200(255表示完全不透明,0表示完全透明...第2行是位图行偏移,行偏移意思就是一行结束到下一行开始距离,单位像素个数。由于整个位图都要绘制,所有行偏移就是0。 第3行是背景位图首地址。 第4行是背景层行偏移。...第4个图:两个位图混合。 第5个图:Alpha透明度200位图显示。 第6个图:Alpha透明度100位图显示。 LCD界面显示效果如下: ?

    73910

    TransparentBitmap函数设置透明位图原理分析

    1、函数功能:把一张位图设置成透明,不影响背景显示,并可改变大小 2、函数思想: (1)以当前hdc创建5个设备兼容dc(HDC):hMem,hSave,hBack,hObject,hTemp...其中bmMem和bmSave为设备兼容位图,bmBack和bmObject为单色位图 (4)创建临时位图分别选入临时DC中,效果图如下: 图1 原位图 (5)设置选入过位图...hTemp映射模式,并保存到hSave; (6)hTemp背景色设置为要透明颜色,在原样拷贝到hObject,创建目标屏蔽码, 然后恢复源DC(hTemp)原始背景色;...) 图5 目标屏蔽码屏蔽背景位图 屏蔽位图透明色:hBack→hTemp;(SRCAND) 图6 反转屏蔽码屏蔽位图透明色后结果...位图与目标DC背景做异或操作:hTemp→hMem;(SRCINVERT) 图7 图6与图5异或操作结果 拷贝目标到屏幕上:hMem→

    43930

    android之.9.png详解

    .9.PNG是安卓开发里面的一种特殊图片,这种格式图片通过ADT自带编辑工具生成,使用九宫格切分方法,使图片支持在android 环境下自适应展示。...PNG,是一种非失真性压缩位图图形文件格式。PNG格式是非失真性压缩,允许使用类似于GIF格式调色板技术,支持真彩色图像,并具备阿尔法通道(半透明)等特性。...(1)允许开发人员定义可扩展区域,当需要延伸图片以填充比图片本身更大区域,可扩展区内容被延展。 (2)允许开发人员定义内容显示区,用于显示文字或其他内容 ?...如下图所示: 左侧和上方黑线交叉部分即可扩展区域 右侧和下方黑线交叉部分即内容显示区域(如做button背景,button上文字显示区域) 用它可以实现部分拉伸,从而实现图片在安卓系统上完美应用...有些图片边上有红线(如下图),它表示在这图片为背景容器组件上子组件所能放置区域(需要和黑线扩展结合起来看)。 ? SDK18中一个背景图片

    1.3K60

    【STM32H7】第6章 ThreadX GUIX上手之STM32H7 DMA2D加速

    前景层里面起始坐标(40,30),长480,高272数据与背景层里面起始坐标(50,40),长480,高272数据复制到输出区起始地址(60,50),长480,高272区域。...6.3.4 转换PNG图片为RGB565格式位图 转换方法与56.4.1小节相似,主要下面两个地方不同: 第1点不同:使用电脑端画图小软件前面下载图标转换为BMP格式(PNG图片中透明通道会滤被掉...使用举例: 大小128*128,颜色格式为RGB565位图绘制到LCD起始坐标为(176, 168)区域,输出颜色格式也配置为RGB565,透明度设置为200(255表示完全不透明,0表示完全透明...第2行是位图行偏移,行偏移意思就是一行结束到下一行开始距离,单位像素个数。由于整个位图都要绘制,所有行偏移就是0。 第3行是背景位图首地址。 第4行是背景层行偏移。...第4个图:两个位图混合。 第5个图:Alpha透明度200位图显示。 第6个图:Alpha透明度100位图显示。 LCD界面显示效果如下: ?

    61820

    【专业技术】Win32创建异形窗口

    大家都见过在windows下各种气泡窗口、输入法窗口已经其他一些窗口,这些窗口看起来不像传统windows窗那样,上面是标题栏,下面是窗口客户区。...然后使用SetWindowRgn函数设置窗口区域,区域转化为窗口。这种方式适合通过程序控制实现一些形状定制窗口。 通过位图画刷设置窗口背景,然后过滤掉指定颜色,剩下部分就是窗口。...这种方式即简单,又适合位图任意窗口,用最多,具有更炫效果。...实现方式就是窗口属性设置分层,然后使用SetLayeredWindowAttributes这个API函数特定颜色设置为透明色,该函数不仅可以设置为透明色,还可以设置整体窗口透明度,将上一篇文章中设置半透明窗口效果...首先我们要准备一张用于特殊窗口样子位图,我们选择图片如下: 为了实现这个位图窗口形状,我们先对这个位图进行处理,窗口以为部分用一种特殊颜色来填充,这个颜色需要与窗口保留部分不一样,因为只要是这种特定颜色就会变成非窗口部分

    3.4K110

    10.多媒体

    相比于广播接收器和服务,在活动里创建通知场景还是比较少,因为一般只有当程序进入到后台时候才需要使用通知。...sound这个属性是一个Uri对象,所以在指定音频文件时候还需要先获取到音频文件对应URI。...= 图片总像素 * 每个像素占用大小 单色位图:只能表示2种颜色 使用两个数字:0和1 使用一个长度为1二进制数字就可以表示了 每个像素占用1/8个字节 16色位图:能表示16...0000 - 1111 1111 使用一个长度为8二进制数字 每个像素占用1个字节 24位位图: 每个像素占用24位,也就是3个字节,所在叫24位位图 R:0-255,需要一个长度为8二进制数字...())); sendBroadcast(intent); 撕衣服 原理:把穿内衣和穿外衣照片重叠显示,内衣照在下面,用户滑动屏幕,触摸是外衣照,把手指经过像素都置为透明,内衣照就显示出来了

    1.3K80

    Android 开发 - 网络图片加载库 Fresco 使用。

    Fresco对 布局宽高要求 你必须声明 android:layout_width 和 android:layout_height。 如果没有在XML中声明这两个属性,无法正确加载图像。...这么做是有理由: 所下载图像可能和占位图尺寸不一致,如果设置出错图或者重试图的话,这些图尺寸也可能和所下载图尺寸不一致。...固定宽高比 只有希望显示固定宽高比,可以使用wrap_content。...指定 加载显示图片 使用 failureImage 指定 加载失败显示图片 使用 placeholderImage 指定占位图 <com.facebook.drawee.view.SimpleDraweeView...失败,中间过程,成功事情 Uri uri; DraweeController controller = Fresco.newControllerBuilder() .setControllerListener

    1.9K00

    TRTC案例:截图体积与清晰度

    背景: 业务场景和架构:TRTC安卓端与小程序端实现视频互通,房间旁路到直播,采用直播云端截图。...以Android端为例,可以在setVideoEncoderParam是传入TRTCVideoEncParam中,指定videoResolution。...那点阵图和矢量图有什么区别呢,通俗,点阵图是由最小单位为像素构成图,缩放会失真;而矢量图是采用线条和填充方式构成,缩放不会失真的图。...由于JPEG是有损压缩,会产生迭代有损,在重复压缩和解码过程中会不断丢失信息使图像质量下降。...附: (1)补充alpha通道概念: “描述图片中透明区域,此透明区域允许通透地显示背景,是指一张图片透明和半透明度。

    2.6K10
    领券