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 Excel相关处理 工具类 java Excel相关处理 工具类java Excel相关处理 工具类 java Excel相关处理 工具类java Excel相关处理 工具类 java Excel相关处理 工具类java Excel相关处理 工具类 java Excel相关处理 ...
"图片处理工具类"是一个专为处理图像而设计的Java类库,它提供了多种功能,包括缩放图像、切割图像、图像类型转换、将彩色图像转换为黑白、添加文字水印以及图片水印等。这个类库对于简化开发者的工作流程,提高代码...
java图片处理工具类JAR包 java-image-scalingjar
在IT行业中,图片缓存工具类是开发移动应用或网页时不可或缺的一部分,它主要用于优化用户体验,提高应用程序性能,特别是对于那些需要频繁加载和显示图片的应用。这个“图片缓存工具类”很可能是一个自定义的Java或...
Android 平台下对图片的压缩,图片格式转换,下载网络图片的一个工具类。欢迎下载。
确保你的工具类能够正确处理这些格式的图片,包括读取、显示和保存。 4. **多媒体存储路径**:在Android7.0中,系统的多媒体文件存储路径可能发生了变化,比如使用`MediaStore` API来访问图片。你需要确保工具类...
这个一个关于图片的工具类
3. **BitmapUtil**: 图片处理工具类,用于处理图片的加载、缩放、裁剪、压缩等。在Android应用中,图片的优化对于性能和用户体验至关重要,因此BitmapUtil能够减少内存消耗,防止OOM(内存溢出)问题。 4. **...
价格处理工具类,去掉结尾多余的数,自动分隔!
文件工具类,Http请求工具类,图片处理工具类。Ip工具类。mail工具类,Map工具类,MD5编码工具类,数字工具类,随机数工具类,反射工具类,字符串处理工具类,URL工具类,XML工具类,常用的数据验证工具类
java上传文件util包,可直接使用,需将地址改为自己的存储地址,
- `Glide`或`Picasso`是常见的图片加载库,通过工具类可以实现图片的加载、裁剪、圆角处理等功能,并能处理内存和磁盘缓存,防止内存溢出。 4. **权限管理工具类**: - 针对Android 6.0(API 23)以上的运行时...
在IT开发过程中,工具类是不可或缺的部分,它们提供了一种高效、便捷的方式来处理常见的编程任务。根据提供的标题和描述,我们可以深入探讨以下这些关键知识点: 1. **Token管理**:Token通常用于身份验证和授权,...
6. **图片处理工具类** (ImageUtil) - `compressImage()`:压缩图片以减小体积。 - `loadImageFromUrl()`:从URL加载图片到ImageView。 - `cropImage()`:裁剪图片。 7. **权限检查工具类** (PermissionUtil) -...
这是一个比较全面的处理日期时间的工具类,利用该工具类可以得到你想要的日期时间。里面代码简洁,方法已经封装好,只需要调用即可。自己可以将其打成jar包来用
HTTPClient工具类,完整,HTTPClient工具类,完整,HTTPClient工具类,完整HTTPClient工具类,完整,HTTPClient工具类,完整
在Java中,工具类通常包含静态方法,不涉及实例化,它们提供的功能包括但不限于字符串处理、日期时间操作、集合操作、数学计算、IO流处理、网络通信等。下面将对这些常见的工具类及其功能进行详细介绍: 1. **...
本文将详细介绍如何构建一个Android多线程网络图片下载工具类,包括其核心原理、关键实现以及缓存策略。 一、多线程下载原理 在Android中,为了防止UI线程被阻塞,网络请求通常在后台线程执行。多线程下载则是将大...
HTTP 请求工具类是 Java 语言中一个常用的工具类,用于发送 HTTP 请求并处理响应结果。本文将对 HttpUtils 发送 HTTP 请求工具类进行详细的讲解,包括其实现原理、关键代码分析和使用示例。 HTTP 请求基础 在了解 ...
添加文字水印的工具类,自己去下JAR包,MAVEN的网站http://mvnrepository.com/