`

Android的图像处理

阅读更多

多媒体处理

 Android的图像处理

图像的表示

Android中,存在内存中的图像数据通过Bitmap对象表示。Bitmap实现了Parcelable接口,说明图像数据是可以序列化和反序列化。

   Bitmap可以存储各种格式的图像数据,如alpha8  agrb4444 agrb8888   rgb555等。Bitmap占据较多的内存,须严格控制Bitmap的生命周期。一旦Bitmap使用完毕,应及时调用Bitmap.recycle回收。

    Bitmap底层实现依托于开源库SkiaBitmap通过底层JNI调用SkiaBitmap实现。

 

   Android中,最有特色的Bitmap格式是,九宫格Nine Patch图像。分成9块区域,利用图像最边缘的1像素的矩形框来划分区域信息,通过矩形框的黑白变化勾勒出九宫格的9块区域。

图像的读取和输出

Android中,图像的读取通过BitmapFactory实现。使用BitmapFactory可以从不同的数据源读取数据,如从图片文件中:

BitmapFactory.decodeFile(“路径”)

从资源文件中读取:BitmapFactory.decodeResourceR.drawable.X

但图片过大会导致内存溢出。

 

读取大图片时,需要控制读入图片的大小,使用BitmapFactory.options设置读取图片的参数,options类中,in开头的参数表示控制图像读取的参数,inSampleSize可以控制图像的缩放比例。out开头的参数表示用来预取该图片文件中图像的基本信息,如长宽、图片的类型等。

 

为了区分BitmapFactory.decodeFile是为了获取图片信息而不是读取图片数据,用options对象中的inJustDecodeBounds=true实现。

 

通过Bitmap.compress可以将存放在内存中的图像数据压缩成PGNGIFJPG等格式。

 

图像的呈现

使用ImageView控件。其实现很简单,将图像数据读到内存中,按照一定比例展示出来,因此无法满足:

大尺寸照片的呈现:不支持缩放、拖动

大图片文件的呈现:可能内存溢出

存储在Web上的图片的呈现:不支持网络获取图片

综述:ImageView适合简单的小图像的呈现。

 

图像管理

开发中如果需要处理大量小图片(头像、缩略图),那么将图片对象池化进行管理。如联系人应用。

 

联系人应用用LruCache来存储联系人头像信息。LruCache基于最近最少使用LRU算法保存最近常使用的图片,淘汰不常使用的图像。

分享到:
评论

相关推荐

    eoeAndroid特刊第二期:Android图像处理篇 pdf

    eoeAndroid特刊第二期:Android图像处理篇 pdf,eoeAndroid策划的第二篇专题,主要整理和翻译在Android中进行图像处理的一些资源和文章,通过本专题内容的学习,您可以掌握如何在Android上对图片编程,主要包括但不...

    Android图像处理技术(实现Android中的PS)(五)

    一、Android图像处理基础 Android提供了丰富的API来处理图像,主要涉及以下几个库: 1. Android SDK的Bitmap类:Bitmap是Android系统中处理图像的基本类,包含了加载、绘制、裁剪、缩放和颜色操作等方法。 2. ...

    Android图像处理技术

    本文将深入探讨Android图像处理的核心概念、关键API以及实用案例,帮助开发者掌握这一关键技术。 1. **Android图像基础** - Android支持多种图像格式,如JPEG、PNG、GIF和WEBP等。 - Bitmap类是Android中处理图像...

    android图像处理系统1.3

    本文将深入探讨Android图像处理系统1.3的相关知识点,基于提供的链接(由于无法直接访问,以下内容将根据通常的Android图像处理知识进行阐述)。 1. **Android图像基础**: Android系统提供了多种图像处理API,...

    Android图像处理软件

    一款Android下的图像处理软件,功能强大,最重要的是支持手写,笔画

    android图像处理系统1.0

    Android图像处理系统1.0是专为这个操作系统设计的一套完整的图像管理和处理框架,旨在提供高效、灵活的图像操作功能。在这个系统中,开发者可以对图片进行各种操作,如裁剪、旋转、滤镜效果、色彩调整等,以满足不同...

    android_picture.zip_Android图像处理_android

    这个名为"android_picture.zip"的压缩包可能包含了各种Android图像处理的示例代码,帮助开发者实现不同的图像特效。以下是一些Android图像处理的关键知识点: 1. **Bitmap类**:在Android中,Bitmap是用于表示图像...

    Android图像处理之图形特效处理

    在本讨论中,我们将深入探讨Android图像处理中的图形特效处理,主要围绕`AndroidMatrix`类,它是Android系统中用于执行2D图形变换的核心工具。 `AndroidMatrix`是Android SDK提供的一种机制,用于处理2D图形的矩阵...

    Android图像处理技术(实现Android中的PS)(六)

    总的来说,Android图像处理技术包括了基础API的使用、颜色空间转换、滤镜效果、几何变换以及第三方库的集成等多个方面。通过熟练掌握这些技术,开发者可以在Android平台上实现各种创意无限的图像处理功能,满足用户...

    Android图像处理技术(实现Android中的PS)(四)

    一、Android图像处理基础 在Android中,我们可以使用多种库来处理图像,例如Android自带的Bitmap类,它提供了基本的图像操作,如缩放、裁剪和颜色转换。此外,OpenCV是一个强大的开源计算机视觉库,包含许多高级图像...

    android图像处理系统框架1.2版

    1. **SurfaceTexture与OpenGL ES的集成**:Android图像处理系统常利用SurfaceTexture作为GPU渲染结果的接收者,并通过它可以将图像数据传递给其他组件,如VideoView或自定义的SurfaceHolder。在1.2版中,可能对这种...

    Android图像处理

    总结起来,Android图像处理涵盖了许多技术,包括但不限于点阵操作、ColorMatrix应用、PorterDuff模式、Canvas绘图以及RenderScript。理解并熟练运用这些工具和概念,可以帮助开发者创造出丰富多样的图像效果,提升...

    基于OpenCV+JAVA+C++的Android图像处理工具软件+源码+开发文档说明+实用教程(毕业设计&课程设计&项目开发)

    基于OpenCV+JAVA+C++的Android图像处理工具软件+源码+开发文档说明+实用教程,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于OpenCV+JAVA+C++的Android图像...

    eoeAndroid-about-image.zip_android_android 图像 处理

    综上所述,Android图像处理涵盖了从基础的图像加载、显示到复杂的计算机视觉应用,涉及到多个类和库。开发者需要理解每个工具的作用,灵活运用以满足不同的需求,同时注重性能优化,确保应用的稳定性和效率。通过...

    基于OpenCV+JAVA+C++的Android图像处理工具软件+源码+开发文档说明+实用教程(高分项目)

    基于OpenCV+JAVA+C++的Android图像处理工具软件+源码+开发文档说明+实用教程(高分项目)含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。包含:项目源码...

    安卓开发-Android 图像处理篇.zip

    在这里,我们将详细探讨Android图像处理的一些关键知识点。 1. **Bitmap类**:Android中的Bitmap类是处理图像的基本工具,它代表了一个位图图像。理解Bitmap的内存管理至关重要,包括如何高效地加载、解码和复用...

    Android图像处理与数据通信.zip

    一、Android图像处理 1. 图像加载库:Android原生的Bitmap API虽然可以处理图像,但在性能和内存管理上存在不足。因此,开发者常使用如Glide、Picasso、Fresco等第三方库来优化图像加载,它们能实现缓存机制,避免...

    Android绘图机制与处理技巧(三)——Android图像处理之图形特效处理

    总的来说,Android图像处理涉及到的知识点广泛且深入,包括但不限于Matrix的几何变换、BitmapMesh的像素操作、Canvas与Paint的基础绘图以及可能需要的OpenGL ES编程。熟练掌握这些技术,可以帮助开发者创造出更加...

    Android图像处理之画笔特效处理

    本文将深入探讨“Android图像处理之画笔特效处理”这一主题,通过一个具体的demo来展示如何在Android应用程序中实现各种有趣的画笔特效。 首先,Android的Canvas类是图像绘制的核心,它提供了丰富的绘图方法,如...

    基于Opencv的Android图像处理(Eclipse和ndk)环境搭建.docx

    ### 基于OpenCV的Android图像处理(Eclipse与NDK)环境搭建详解 #### 一、前言 在Android开发中,特别是在涉及到图像处理的应用场景时,使用OpenCV库能够极大地提升图像处理能力。本文将详细介绍如何在Eclipse环境...

Global site tag (gtag.js) - Google Analytics