`

位图Bitmap缩放两种方法

阅读更多

一、位图缩放采用现成的类和方法
举例:

//从本地加载位图,userPic.jpg位图存储在本地SD卡上,路径为/sdcard//DCIM/userPic.jpg private void loadPicFromLocal(){ String status = Environment.getExternalStorageState(); if (status.equals(Environment.MEDIA_MOUNTED)) // 判断是否有SD卡 { //存储在SD卡上的本地头像路径,如:/sdcard//DCIM/userPic.jpg String picPath = Environment.getExternalStorageDirectory() + "/DCIM/userPic..jpg"; File f=new File(picPath); if(f.exists()){ BitmapFactory.Options options = new BitmapFactory.Options(); //缩放为原图像的1/2 options.inSampleSize = 2; Bitmap bm = BitmapFactory.decodeFile(picPath, options); //加载图像到ImageView img.setImageBitmap(bm); } } else { Toast.makeText(类名.this, "找不到SD卡", Toast.LENGTH_LONG).show(); }


 
二、位图缩放采用自定义函数bitmapRoom
假设已存在位图对象photo,缩放函数的调用过程
举例

//创建一个位图对象compressedPic存储缩放后的图片 Bitmap compressedPic = null; //调用缩放函数对图片进行缩放 compressedPic = bitmapRoom(photo,60,60); //加载图像到ImageView img.setImageBitmap(compressedPhoto);


 

bitmapRoom函数定义: //转自http://hi.baidu.com/samyou090/item/716d763dc91531f9df22211d ,同时参考http://www.ataaw.com/develop/356.html中的详细注释 public static Bitmap bitmapRoom(Bitmap srcBitmap,int newHeight,int newWidth) { int srcWidth = srcBitmap.getWidth(); int srcHeight = srcBitmap.getHeight(); float scaleWidth = ((float) newWidth) / srcWidth; float scaleHeight = ((float) newHeight) / srcHeight; Matrix matrix = new Matrix(); matrix.postScale(scaleWidth, scaleHeight); Bitmap resizedBitmap = Bitmap.createBitmap(srcBitmap, 0, 0, srcWidth, srcHeight, matrix, true); if(resizedBitmap != null) { return resizedBitmap; } else { return srcBitmap; } }



 

 

                

0
1
分享到:
评论

相关推荐

    bmp位图的缩放代码

    在IT领域,BMP(Bitmap)是一种常见的位图文件格式,用于存储图像数据。当我们处理图形时,有时需要对BMP图像进行缩放操作,以适应不同的显示需求或分辨率。以下将详细介绍BMP位图的缩放代码实现,以及相关的图像...

    位图bitmap图像文件格式详解与编程PPT

    在Windows环境下,位图分为两类:设备独立位图(Device-independent bitmaps,DIB)和设备依赖位图(Device-dependent bitmaps,DDB)。 1. 设备依赖位图(DDB): DDB是基于设备的,其格式由BITMAP结构定义,包含...

    位图的缩放

    位图的放大和缩小主要通过两种方式实现:简单拉伸和插值算法。简单拉伸是最基础的方法,即将原有位图的像素按照一定的比例复制或间隔放置,形成新的位图。这种方式处理速度快,但可能导致图像失真,特别是对于复杂的...

    图片比例缩放以及bitMap转BitmapDrawable

    Bitmap是Android中表示位图图像的基本类,而BitmapDrawable是Drawable的一种,可以被设置为ImageView等视图的源。在某些场景下,例如设置自定义背景或者使用动画时,可能需要将Bitmap转换为BitmapDrawable。这可以...

    打开位图dmp格式,带缩放功能。

    缩放位图通常涉及两种技术:插值和重采样。插值是通过对现有像素的颜色信息进行数学计算来生成新的中间像素,从而增加或减少图像分辨率。常见的插值算法有最近邻插值、双线性插值和更高级的立方插值等。重采样则是...

    C实现位图bmp的合成和缩放

    在计算机图形学中,位图(Bitmap)是一种常见的图像数据格式,它以像素阵列的形式存储图像信息。在C语言中处理位图,尤其是BMP(Bitmap File Format)这种无损图像格式,需要理解其结构并编写相应的读取、合成和缩放...

    Android实现Bitmap位图旋转效果

    首先,我们要知道Android提供了两种主要的方式来实现Bitmap的旋转:使用`Matrix`类和使用`Canvas`。在这篇描述中,我们将重点讨论使用`Matrix`的方法,因为这种方法更常见且易于理解。 1. **使用Matrix进行旋转**:...

    c#Bitmap类和Graphics类

    C#中的Bitmap类和Graphics类是两种常用的图形处理类,它们之间存在一定的差异和联系。在本节中,我们将详细介绍Bitmap类和Graphics类的概念、方法和应用场景。 一、Bitmap类 Bitmap类是C#中用于图像处理的基本类,...

    Activity跳转时传递Bitmap对象

    在Activity间传递Bitmap,有两种主要方式:Intent extras和使用Parcelable接口。由于Bitmap对象较大,直接通过Intent的extras传递可能会导致内存溢出,因为Intent的大小有限制。因此,更推荐使用Parcelable接口。 1...

    将ddb的位图转换成DIB的位图

    在Windows图形用户界面编程中,位图是一种基本的图像元素,分为两种类型:Device Dependent Bitmap(设备依赖位图,简称DDB)和Device Independent Bitmap(设备无关位图,简称DIB)。DDB与特定的显示器设备紧密相关...

    游戏开发BITMAP图片

    BITMAP图片在游戏开发中的应用是至关重要的,尤其对于初学者来说,理解并掌握BITMAP的基本概念和使用方法是入门游戏编程的关键步骤。BITMAP,也称为位图,是一种常见的图像文件格式,它以像素阵列的形式存储图像信息...

    C# YUV数据转RGB转bitmap图源码,保证能用

    在IT行业中,尤其是在多媒体处理和图像处理领域,YUV和RGB是两种常见的颜色空间表示法。本主题聚焦于如何将从摄像机捕获的YUV帧数据转换为RGB颜色空间,并进一步将其保存为位图(Bitmap)图像。下面将详细阐述这个...

    对比两个位图之间存在的差异

    7. **可视化差异**: 另一种展示差异的方式是创建一个新的位图,用不同的颜色表示不同区域,或者将差异像素高亮显示。 8. **位图差异的应用**: 这种技术常用于软件测试,尤其是自动化UI测试,以检测界面元素的变化;...

    Drawable Bitmap之间的转化

    其中,`Drawable`和`Bitmap`是两种常见的图像对象类型,它们各自有着不同的用途和特点。本文将详细介绍如何在Android中实现`Drawable`与`Bitmap`之间的相互转换,并探讨这两种类型的图像数据在实际应用中的应用场景...

    进行缩放.doc

    这两种方法都可以有效地缩放图片,但`GetThumbnailImage`方法更简单,适用于快速生成缩略图;而使用`Bitmap`和`Graphics`的方法则允许更多自定义,如调整图像质量、添加额外的图形元素等。根据具体需求,开发者可以...

    设备无关位图dib类库

    设备无关位图(Device Independent Bitmap,简称DIB)是Windows操作系统中的一种图像格式,它允许图像在不同的设备上保持一致的显示效果,不受显示器分辨率、颜色深度等因素的影响。DIB类库则是为了方便开发者处理...

    位图的几何变换(缩放、旋转、镜像等)

    位图的几何变换是图像处理领域中的重要概念,主要涉及位图(Bitmap,简称bmp)在二维空间中的形状改变,包括缩放、旋转和镜像等操作。这些变换可以用于图像编辑、游戏开发、视觉效果等多种场景。接下来,我们将详细...

    Csharp_图形高清缩放

    图像缩放分为放大和缩小两种情况。在C#中,我们可以使用.NET Framework提供的System.Drawing命名空间中的类来实现。关键的类有Bitmap和Graphics,它们分别代表位图图像和用于绘制的图形上下文。 1. **Bitmap类**:...

    vc6.0位图进度条

    1. **设计位图**:设计一张包含两种状态的位图,初始状态为反色,代表未填充的部分;正常颜色代表已填充的部分。这张位图应该有一条明显的边界,以便于进度条的移动效果更加明显。 2. **创建进度条控件**:在资源...

    image2svg_位图矢量图_位图转矢量图_

    位图(Bitmap)和矢量图(Vector Graphics)是两种不同的图像类型,它们各有特点,适用于不同的应用场景。本文将深入探讨位图矢量图转换的原理、方法以及其在实际中的应用。 位图是由像素点阵构成的图像,每个像素...

Global site tag (gtag.js) - Google Analytics