还是最近整理代码、、发现了一个师兄写的图片工具类,感觉还是蛮有用的、、主要是图片上传和下载用的比较多吧/*
* version date author
* ──────────────────────────────────
* 1.0 2010-9-17 Neal Miao
*/
package com.winfar.ic.util;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.kobjects.base64.Base64;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
/**
* 图片处理工具类
*
* @author Neal Miao
* @version
* @since v 1.0
* @Date 2011 May 24, 2011 7:24:50 PM
*
* @see
*/
public class ImageUtil {
/**
* 从SD卡里面读取图片
*
* @param fileName
* @return
* @return Bitmap
* @since v 1.0
*/
public static Bitmap getBitmapByPath(String fileName) {
String myJpgPath = "/sdcard/ic_tmp/" + fileName;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 12;
Bitmap bm = BitmapFactory.decodeFile(myJpgPath, options);
return bm;
}
/**
* 保存图片到SD卡
*
* @param bitName
* @param mBitmap
* @throws IOException
* @return void
* @since v 1.0
*/
public static void saveMyBitmap(String bitName, Bitmap mBitmap)
throws IOException {
File tmp = new File("/sdcard/ic_tmp/");
if (!tmp.exists()) {
tmp.mkdir();
}
File f = new File("/sdcard/ic_tmp/" + bitName + ".png");
f.createNewFile();
FileOutputStream fOut = null;
try {
fOut = new FileOutputStream(f);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
mBitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut);
try {
fOut.flush();
fOut.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static String image2Bytes(String imageName) {
File tmp = new File("/sdcard/ic_tmp/");
if (!tmp.exists()) {
return "";
}
int bufferSize = 1024;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
File f = new File("/sdcard/ic_tmp/" + imageName);
FileInputStream fis = new FileInputStream(f);
BufferedInputStream bis = new BufferedInputStream(fis);
int ch;
int i = 0;
while ((ch = bis.read()) != -1) {
baos.write(ch);
if (i++ == bufferSize) {
baos.flush();
i = 0;
}
}
baos.flush(); // 提交文件流,很关键
bis.close();
} catch (FileNotFoundException e) {
MyLog.e("ImageUtil", e.getMessage());
return "";
} catch (IOException e) {
MyLog.e("ImageUtil", e.getMessage());
return "";
}
return Base64.encode(baos.toByteArray());
}
}
分享到:
相关推荐
本文将深入探讨Android图像处理的核心概念、关键API以及实用案例,帮助开发者掌握这一关键技术。 1. **Android图像基础** - Android支持多种图像格式,如JPEG、PNG、GIF和WEBP等。 - Bitmap类是Android中处理图像...
【Android图片处理工具类BitmapUtils】是Android应用开发中用于高效管理和操作Bitmap对象的一个实用工具类。Bitmap在Android系统中是表示图像数据的核心类,它提供了丰富的图像处理功能,但处理不当可能导致内存溢出...
本文将深入探讨Android图像处理系统1.3的相关知识点,基于提供的链接(由于无法直接访问,以下内容将根据通常的Android图像处理知识进行阐述)。 1. **Android图像基础**: Android系统提供了多种图像处理API,...
在本讨论中,我们将深入探讨Android图像处理中的图形特效处理,主要围绕`AndroidMatrix`类,它是Android系统中用于执行2D图形变换的核心工具。 `AndroidMatrix`是Android SDK提供的一种机制,用于处理2D图形的矩阵...
Android图像处理系统1.0是专为这个操作系统设计的一套完整的图像管理和处理框架,旨在提供高效、灵活的图像操作功能。在这个系统中,开发者可以对图片进行各种操作,如裁剪、旋转、滤镜效果、色彩调整等,以满足不同...
总的来说,Android图像处理技术包括了基础API的使用、颜色空间转换、滤镜效果、几何变换以及第三方库的集成等多个方面。通过熟练掌握这些技术,开发者可以在Android平台上实现各种创意无限的图像处理功能,满足用户...
在Android平台上进行实时图像处理是一项复杂且有趣的技术挑战。这个Demo是基于BoofCV库实现的,BoofCV是一个开源的计算机视觉库,专为Java和Android设计,它提供了多种图像处理功能,包括图像分析、追踪、特征检测等...
1. **BitmapUtil**:处理图像的工具类,包括压缩图片、裁剪图片、转换为Base64字符串等功能,对内存管理至关重要,可以避免因大图导致的OOM问题。 2. **DateUtil**:处理日期和时间的工具类,提供了格式化日期、...
本篇将深入探讨Android图片处理工具的相关知识点,帮助开发者更好地理解和运用这些工具。 首先,Android SDK本身提供了基本的图片处理能力,例如Bitmap类,它是Android中处理图像的基础。Bitmap可以用来加载、创建...
Android提供了多种图片处理工具,如Bitmap类用于加载和处理位图,Matrix用于图像变换,Canvas用于在Bitmap上绘制。对于更复杂的图片处理,如裁剪、缩放、旋转等,可以使用 Picasso、Glide 或 Glide4Engine 等第三方...
一、Android图像处理基础 在Android中,我们可以使用多种库来处理图像,例如Android自带的Bitmap类,它提供了基本的图像操作,如缩放、裁剪和颜色转换。此外,OpenCV是一个强大的开源计算机视觉库,包含许多高级图像...
BitmapUtils工具类是Android开发中不可或缺的一部分,它提高了代码的复用性和可维护性,同时也简化了复杂的图像处理任务。对于一个优秀的Android开发者来说,掌握并熟练运用BitmapUtils工具类是非常必要的。在实际...
本项目旨在设计一个基于Android平台的图像基本处理示例应用,主要功能包括图像的颜色矩阵变换、图像像素效果处理、基本颜色操作以及相关图像处理工具类。应用通过提供多种图像处理操作,展示如何在Android环境下实现...
通过阅读这篇博客,开发者可以学习到如何结合这个工具类来优化应用的适配性能,比如如何设置布局尺寸,如何处理图像资源,以及如何编写响应式布局代码。 总的来说,"android屏幕适配px工具类"是Android开发者必备的...
这个“通过JNI实现图像处理的demo-Android Studio”项目,旨在演示如何利用JNI来增强Android应用的图像处理能力。下面我们将深入探讨相关的知识点。 首先,Android Studio是Google推出的官方Android开发环境,它...
本教程将详细讲解如何创建一个兼容Android7.0的图片选择工具类,帮助开发者解决这些问题。 首先,理解Android7.0的系统变化至关重要。在Android7.0(API级别24)中,主要的更新包括多窗口模式、快速回复、通知通道...
总的来说,GPUImage for Android是一个强大的图像处理工具,它通过充分利用GPU的优势,实现了高效、实时的图像滤镜应用。无论是开发摄影类应用还是进行复杂的图像特效处理,GPUImage都能提供一个强大而灵活的解决...
1. **SurfaceTexture与OpenGL ES的集成**:Android图像处理系统常利用SurfaceTexture作为GPU渲染结果的接收者,并通过它可以将图像数据传递给其他组件,如VideoView或自定义的SurfaceHolder。在1.2版中,可能对这种...
- **ImageProject.jar**:这是Java应用程序的可执行文件,包含了所有的类和资源,可以直接运行以启动图像处理工具。 - **file.properties**:这可能是一个配置文件,用于存储应用程序的设置或默认参数,如用户自定义...