`
何先生
  • 浏览: 26518 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

BitmapTools图片处理工具类

阅读更多
package com.cnki.client.utils;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
/**
 * 获取bitmap的工具类 以及保存bitmap到指定路径
 * @author Hejiangyan
 *
 */
public class BitMapTools {
	/**
	 * 根据输入流获取响应的位图对象
	 * @param in
	 * @return
	 */
	public static Bitmap getBitmap(InputStream in){
		return BitmapFactory.decodeStream(in);
	}
	/**
	 * 根据输入流, 缩小比获取位图对象
	 * @param in
	 * @param scale
	 * @return
	 */
	public static Bitmap getBitmap(InputStream in,int scale){
		Bitmap _bitmap = null;
		Options _ops = new Options();
		_ops.inSampleSize = scale;
		_bitmap = BitmapFactory.decodeStream(in, null, _ops);
		return _bitmap;
	}
	/**
	 * 根据指定输入的宽高,保持纵横比,缩小获取位图对象
	 * @param in
	 * @param width
	 * @param height
	 * @return
	 */
	public static Bitmap getBitmap(byte[] bytes,int width,int 

height){
		Bitmap _bitmap = null;
		Options _ops = new Options();
		_ops.inJustDecodeBounds = true;
		BitmapFactory.decodeByteArray(bytes, 0, 

bytes.length,_ops);
		
		_ops.inJustDecodeBounds = false;
		
		int scaleX = _ops.outWidth/width;
		int scaleY = _ops.outHeight/height;
		int scale = scaleX>scaleY?scaleX:scaleY;
		_ops.inSampleSize = scale;
		_bitmap = BitmapFactory.decodeByteArray(bytes, 0, 

bytes.length,_ops);
		return _bitmap;
	}
	/**
	 * 根据指定的文件路径获取位图对象
	 * @param path
	 * @return
	 */
	public static Bitmap getBitMap(String path){
		Bitmap bitmap = null;
		bitmap = BitmapFactory.decodeFile(path);
		return bitmap;
	}
	/**
	 * 将位图保存到指定的路径 
	 * @param path
	 * @param bitmap
	 * @throws IOException 
	 */
	public static void saveBitmap(String path,Bitmap bitmap) 

throws IOException{
		if(path != null && bitmap != null){
			File _file = new File(path);
			//如果文件夹不存在则创建一个新的文件 
			if(!_file.exists()){
				_file.getParentFile().mkdirs();
				_file.createNewFile();
			}
			//创建输出流
			OutputStream write = new FileOutputStream

(_file);
			//获取文件名
			String fileName = _file.getName();
			//取出文件的格式名
			String endName = fileName.substring

(fileName.lastIndexOf(".")+1);
			if("png".equalsIgnoreCase(endName)){
				//bitmap的压缩格式
				bitmap.compress(CompressFormat.PNG, 

100, write);
			}else {
				bitmap.compress(CompressFormat.JPEG, 

100, write);
			}
		}
	}
}
分享到:
评论

相关推荐

    java图片处理工具类ImgUtils.java

    添加水印图片-可设置水印图片旋转角度;添加水印文字(自动换行)-可设置水印文字的旋转角度;获取文本所占长度像素;图片截取;图片高质量缩放;图片png格式缩放;图片克隆副本;读取图片对象;图片输出 ……

    java图片处理工具类JAR包 java-image-scalingjar

    java图片处理工具类JAR包 java-image-scalingjar

    图片裁剪、缩放工具类

    通常,这两个文件都可能包含类定义,其中ImgUtils可能是主要的图片处理工具类,而ImgUtils1可能是其扩展或者另一种实现方式。在这些类中,我们可以期待找到以下核心方法: 1. 图片裁剪(Crop):裁剪图片到指定的...

    图片文件处理工具类

    图片文件处理工具类

    java操作图片的工具类

    java操作图片的工具类,包括图片放大缩小、图片裁剪、打水印(文字水印和图片水印)

    Android图片的工具类,裁剪

    这个一个关于图片的工具类

    C# 常用工具类 日志操作(log4net) 配置管理、字符串工具、DateTime工具、图片工具、文件工具、加密工具 等

    5. **图片工具**: 图片工具类主要用于处理图像文件,可能包括读取、写入、缩放、裁剪、转换图像格式等功能。它们可以帮助开发者在C#应用程序中实现图像处理的需求,如创建缩略图、水印或者处理用户上传的图片。 6. ...

    Rabbitmq工具类,java工具类RabbitmqUtil

    `RabbitmqUtil` 是一个专门为Java开发者设计的工具类,简化了与RabbitMQ交互的复杂过程,使得开发者能够更快速、更方便地发送和接收消息。 首先,我们来详细了解一下`RabbitmqUtil`工具类的主要功能: 1. **连接...

    Android快速开发系列 10个常用工具类 程序源码

    3. **BitmapUtil**: 图片处理工具类,用于处理图片的加载、缩放、裁剪、压缩等。在Android应用中,图片的优化对于性能和用户体验至关重要,因此BitmapUtil能够减少内存消耗,防止OOM(内存溢出)问题。 4. **...

    Java价格处理类.工具类

    价格处理工具类,去掉结尾多余的数,自动分隔!

    java上传文件(图片)工具类,可直接使用

    java上传文件util包,可直接使用,需将地址改为自己的存储地址,

    android图片处理工具

    本篇将深入探讨Android图片处理工具的相关知识点,帮助开发者更好地理解和运用这些工具。 首先,Android SDK本身提供了基本的图片处理能力,例如Bitmap类,它是Android中处理图像的基础。Bitmap可以用来加载、创建...

    android开发必备工具类

    - `Glide`或`Picasso`是常见的图片加载库,通过工具类可以实现图片的加载、裁剪、圆角处理等功能,并能处理内存和磁盘缓存,防止内存溢出。 4. **权限管理工具类**: - 针对Android 6.0(API 23)以上的运行时...

    Android 多线程网络图片下载工具类

    本文将详细介绍如何构建一个Android多线程网络图片下载工具类,包括其核心原理、关键实现以及缓存策略。 一、多线程下载原理 在Android中,为了防止UI线程被阻塞,网络请求通常在后台线程执行。多线程下载则是将大...

    JAVA28个常用工具类

    3. **QrcodeUtils.java**: 二维码生成与解析工具类,用于生成二维码图片或读取二维码中的数据。这类工具类通常会使用Zxing (Zebra Crossing) 或者其他类似的库。 4. **ClassUtils.java**: 类操作工具类,提供了一些...

    java对图片添加水印的工具类

    添加文字水印的工具类,自己去下JAR包,MAVEN的网站http://mvnrepository.com/

    图片处理UTils工具类

    图片处理UTils 包括了图片切割 图片圆角等根据比例压缩图片大小

    C# RestSharpUtil RestSharp工具类

    总结来说,`RestSharpUtil`工具类是对RestSharp库的高级封装,它的目标是简化REST API的调用,提供统一的接口来处理请求和响应,以及提高代码的可维护性和可读性。通过合理地设计和使用这样的工具类,开发者可以更...

    java开发常用工具类大全,程序员必备工具

    图片处理可能涉及到读取、裁剪、缩放、转换格式等操作。如Apache的`ImageIO`类或第三方库如`PIL`(Python Imaging Library)的Java版本,它们为开发者提供了强大的图像处理能力。 7. **数据库操作工具类**: ...

    java常用工具类打包下载

    J2EE常用工具类汇总 J2EE常用工具类—Value Object工具类 ...J2EE常用工具类—文件打包解包处理类 J2EE常用工具类——文件操作类 J2EE常用工具类——邮件处理类(javaMail发送邮件) J2EE常用工具类——字符串工具类

Global site tag (gtag.js) - Google Analytics