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);
}
}
}
}
分享到:
相关推荐
添加水印图片-可设置水印图片旋转角度;添加水印文字(自动换行)-可设置水印文字的旋转角度;获取文本所占长度像素;图片截取;图片高质量缩放;图片png格式缩放;图片克隆副本;读取图片对象;图片输出 ……
java图片处理工具类JAR包 java-image-scalingjar
图片文件处理工具类
这个一个关于图片的工具类
5. **图片工具**: 图片工具类主要用于处理图像文件,可能包括读取、写入、缩放、裁剪、转换图像格式等功能。它们可以帮助开发者在C#应用程序中实现图像处理的需求,如创建缩略图、水印或者处理用户上传的图片。 6. ...
3. **BitmapUtil**: 图片处理工具类,用于处理图片的加载、缩放、裁剪、压缩等。在Android应用中,图片的优化对于性能和用户体验至关重要,因此BitmapUtil能够减少内存消耗,防止OOM(内存溢出)问题。 4. **...
Java图片压缩工具类,根据宽度、高度进行压缩图片。如有意见,欢迎指出
价格处理工具类,去掉结尾多余的数,自动分隔!
java小数处理工具类, 所有方法默认四舍五入 BigDecimal 相加 BigDecimal 相减 BigDecimal 相乘 BigDecimal 相除 传入值乘100(一般用于rmb单位 元 转 分) 传入值除100 (一般用于rmb单位 分 转 元) 四舍五入保留两位...
用于android图片压缩,工具类中也有关于选择图片的方法,暂时忽略即可。
主要功能:图片压缩,缩小图片尺寸,图片旋转,图片加文字或图片水印,图片加边框,调整亮度、对比度和清晰度,图片去色,去除图片Exif信息(拍摄时间,相机型号信息),CMYK转RGB等,全部支持批量处理。 支持处理的...
java上传文件util包,可直接使用,需将地址改为自己的存储地址,
本篇将深入探讨Android图片处理工具的相关知识点,帮助开发者更好地理解和运用这些工具。 首先,Android SDK本身提供了基本的图片处理能力,例如Bitmap类,它是Android中处理图像的基础。Bitmap可以用来加载、创建...
- `Glide`或`Picasso`是常见的图片加载库,通过工具类可以实现图片的加载、裁剪、圆角处理等功能,并能处理内存和磁盘缓存,防止内存溢出。 4. **权限管理工具类**: - 针对Android 6.0(API 23)以上的运行时...
MinIO通用上传工具类
在描述中提到的“java通用异常处理类”,可能包含了一些预定义的异常处理器,可以统一处理程序中抛出的各种异常,提高代码的可读性和可维护性。 日志处理是系统调试、监控和问题排查的重要手段。在Java中,Log类...
这是一个比较全面的处理日期时间的工具类,利用该工具类可以得到你想要的日期时间。里面代码简洁,方法已经封装好,只需要调用即可。自己可以将其打成jar包来用
5. **图片处理工具类**: - `ImageLoader`:图片加载、缓存和显示,可能涉及Glide、Picasso等第三方库。 - `BitmapUtils`:Bitmap对象的处理,如压缩、裁剪、旋转等。 6. **权限管理工具类**: - `...
在Android开发中,图片处理是不可或缺的一部分,无论是加载网络图片、裁剪图片、调整尺寸、压缩质量,还是进行各种特效处理,都需要用到相应的图片工具类。本篇将围绕"android 图片工具类"这一主题,详细介绍Android...
1. **DateUtils**: `java.util.Date` 和 `java.time` 包含日期和时间的操作,但DateUtils通常是Apache Commons Lang库中的一个工具类,提供更方便的日期处理方法,如格式化、解析、比较和日期的加减操作。...