`
何先生
  • 浏览: 26970 次
  • 性别: 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图片处理工具类JAR包 java-image-scalingjar

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

    java图片处理工具类

    java图片处理工具类,支持图片裁剪,图片根据尺寸缩放,图片根据宽度缩放,图片加水印等功能cutImage。

    ffmpeg java 封装工具类,音视频处理.zip

    FFmpeg 是一个强大的开源命令行工具,用于处理音频和视频文件。...通过这个"ffmpeg java 封装工具类",开发者可以更便捷地在Java应用中实现丰富的音视频处理功能,提高开发效率,同时降低对FFmpeg命令行知识的依赖。

    图片文件处理工具类

    图片文件处理工具类

    日期处理工具类

    此工具跟随自己几年了,每到一家公司都会根据该公司的业务进行扩展。日期处理工具类,基本的方法都是有的。

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

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

    C#图片处理工具类含绘制水印阴影保存等.doc

    C#图片处理工具类含绘制水印阴影保存等.doc

    Rabbitmq工具类,java工具类RabbitmqUtil

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

    Java图片压缩工具类

    Java图片压缩工具类,根据宽度、高度进行压缩图片。如有意见,欢迎指出

    Java价格处理类.工具类

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

    java小数处理工具类

    java小数处理工具类, 所有方法默认四舍五入 BigDecimal 相加 BigDecimal 相减 BigDecimal 相乘 BigDecimal 相除 传入值乘100(一般用于rmb单位 元 转 分) 传入值除100 (一般用于rmb单位 分 转 元) 四舍五入保留两位...

    Android开发常用工具类

    5. **图片处理工具类**: - `ImageUtils`:可以进行图片的压缩、裁剪、旋转等操作,还可以处理加载图片的缓存策略。 6. **XML/JSON解析工具类**: - `XmlUtils`:处理XML数据,如解析XML文件、转化成对象等。 - ...

    图片压缩工具类

    用于android图片压缩,工具类中也有关于选择图片的方法,暂时忽略即可。

    安卓开发框架工具类相关-安卓开发也会经常用到的28个java常用的工具类源码.zip

    7. **图片处理工具类**: - 图片压缩:优化图片大小,减少内存占用。 - 图片裁剪和旋转:用于用户选择照片后进行调整。 8. **设备和系统信息工具类**: - 获取设备信息:如屏幕分辨率、设备型号等。 - 系统版本...

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

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

    android开发必备工具类

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

    java工具类,日志处理类

    在描述中提到的“java通用异常处理类”,可能包含了一些预定义的异常处理器,可以统一处理程序中抛出的各种异常,提高代码的可读性和可维护性。 日志处理是系统调试、监控和问题排查的重要手段。在Java中,Log类...

    日期时间处理工具类

    这是一个比较全面的处理日期时间的工具类,利用该工具类可以得到你想要的日期时间。里面代码简洁,方法已经封装好,只需要调用即可。自己可以将其打成jar包来用

    android工具类

    5. **图片处理工具类**: - `ImageLoader`:图片加载、缓存和显示,可能涉及Glide、Picasso等第三方库。 - `BitmapUtils`:Bitmap对象的处理,如压缩、裁剪、旋转等。 6. **权限管理工具类**: - `...

Global site tag (gtag.js) - Google Analytics