其中包括图片与字节流的相互转换,获取图片类型,图片大小,图片长宽等:
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Iterator;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import org.apache.commons.codec.binary.Base64;
/**
* This utility class is used for HTTP access operation, like URL encoding.
*
* @author Leo.zhou
*
*/
public class CommonUtils {
/**
* Convert byte stream base on base64 format to file
*
* @param stream, byte stream base on base64
* @return file convert from byte stream
* @throws IOException
*/
public static File convertToFileFromBase64(String stream, String path) throws IOException {
byte[] bytes = stream.getBytes("ASCII");
byte[] decoded = Base64.decodeBase64(bytes);
File file = new File(path);
File parent = file.getParentFile();
if (parent != null && !parent.exists()) {
parent.mkdirs();
}
file.createNewFile();
OutputStream os = new FileOutputStream(file);
try {
ByteArrayInputStream buffer = new ByteArrayInputStream(decoded);
byte[] barr = new byte[1024];
while(true) {
int r = buffer.read(barr);
if(r <= 0) {
break;
}
os.write(barr, 0, r);
}
} finally {
os.close();
}
return file;
}
/**
* Convert file to byte stream base on base64 format
*
* @param file file in file system
* @return byte stream convert from file
* @throws IOException
*/
public static String convertToBase64FromFile(File file) throws IOException {
InputStream in = new FileInputStream(file);
byte[] bytes = null;
try {
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
byte[] barr = new byte[1024];
while (true) {
int r = in.read(barr);
if (r <= 0) {
break;
}
buffer.write(barr, 0, r);
}
bytes = buffer.toByteArray();
} finally {
in.close();
}
//All chars in encoded are guaranteed to be 7-bit ASCII
byte[] encoded = Base64.encodeBase64(bytes);
return new String(encoded, "ASCII");
}
/**
* Get image file format type
*
* @param imageFile image file
* @return image type
* @throws IOException
*/
public static String getImageFormatName(File imageFile) throws IOException {
ImageInputStream iis = null;
try {
iis= ImageIO.createImageInputStream(imageFile);
// Find all image readers that recognize the image format
Iterator<ImageReader> iter = ImageIO.getImageReaders(iis);
if(iter == null || !iter.hasNext()) {
throw new IOException("image format error");
}
ImageReader reader = iter.next();
// Return the format name
return reader.getFormatName().toUpperCase();
} finally {
if(iis != null) {
iis.close();
}
}
}
/**
* Get image dimension
*
* @param imageFile image file
* @return image dimension
* @throws IOException
*/
public static String getImageDimension(File imageFile) throws IOException {
FileInputStream fis = null;
try {
fis = new FileInputStream(imageFile);
BufferedImage sourceImg = ImageIO.read(fis);
if(sourceImg == null) {
throw new IOException("image format error");
}
String dimension = sourceImg.getWidth() + "*" + sourceImg.getHeight();
return dimension;
} finally {
if(fis != null) {
fis.close();
}
}
}
/**
* Get file size
*
* @param File file
* @return file size
* @throws IOException
*/
public static Integer getFileSize(File file) throws IOException {
FileInputStream fis = null;
try {
fis = new FileInputStream(file);
return fis.available();
} finally {
if(fis != null) {
fis.close();
}
}
}
}
分享到:
相关推荐
图片处理工具类会优化这个过程,确保在不失真的情况下尽可能地减少内存占用。 4. **内存管理**: Android系统对每个应用程序分配了有限的内存,因此处理大图片时需要特别注意内存管理。工具类可能会使用流式处理、...
在Java编程语言中,处理图片是一项常见的任务,尤其在网页开发、移动应用或者图形用户界面设计中。本篇文章将深入探讨如何使用Java...通过深入理解这些技术,我们可以创建出强大的图片处理工具类,满足日常开发需求。
本文将详细讨论如何使用基于base64的图片处理工具类,以实现图片与base64字符串之间的转换。 首先,我们要理解什么是base64。Base64是一种用于将任意二进制数据编码为ASCII字符的编码方式,它主要应用于邮件系统、...
综上所述,"图片下载工具类"涉及了Android开发中的网络请求、多线程、内存管理、文件操作、图片处理等多个核心领域,是一个功能完备且高效的组件,对于任何需要展示网络图片的应用都是不可或缺的。
【Android图片处理工具类BitmapUtils】是Android应用开发中用于高效管理和操作Bitmap对象的一个实用工具类。Bitmap在Android系统中是表示图像数据的核心类,它提供了丰富的图像处理功能,但处理不当可能导致内存溢出...
本主题将详细探讨一个名为“剪切图片的工具类”的功能,它主要用于对图片进行剪切和缩放操作。这类工具类在编程中通常会提供一系列方法,帮助开发者实现对图像的精确操作。 首先,我们需要理解“剪切”图片的概念。...
这个“图片缓存工具类”很可能是一个自定义的Java或Kotlin类,用于Android平台,或者是Swift或Objective-C类用于iOS平台,它的设计目标是高效地管理和存储图片,减少网络请求,降低服务器压力,并减少用户等待时间。...
通常,这两个文件都可能包含类定义,其中ImgUtils可能是主要的图片处理工具类,而ImgUtils1可能是其扩展或者另一种实现方式。在这些类中,我们可以期待找到以下核心方法: 1. 图片裁剪(Crop):裁剪图片到指定的...
总之,Bitmap图片处理工具类是Android开发中的一个重要组件,它涵盖了图片处理的多个核心功能。理解和熟练运用这些知识点,对于提升应用程序的用户体验和视觉效果有着至关重要的作用。开发者可以根据具体需求,灵活...
这里提到的"文件处理与图片处理工具类"包括Base64Util、FileUtil、GsonUtil和HttpUtil这四个关键工具,它们分别对应了数据编码、文件操作、JSON解析和网络请求的基本功能。 首先,Base64Util是一个用于Base64编码和...
这个名为“一个图片压缩处理工具”的项目,显然专注于使用JavaScript技术来优化和管理图片资源,尤其适用于网页和应用程序中的图片展示。JavaScript作为一种广泛应用于前端开发的脚本语言,其在图片处理领域的应用...
在使用这个工具类时,开发者需要先创建一个实例,然后调用对应的方法设置水印属性,最后调用一个方法(如`addWatermark()`)来执行添加水印的操作,并保存处理后的图片。例如: ```java WatermarkTool watermark = ...
Java图片验证码工具类是一种在Web应用中用于防止恶意自动化操作(如...通过以上知识点,你可以了解一个Java图片验证码工具类的基本设计和功能。这个工具类可以有效地帮助Web应用增强安全性,防止自动化的恶意活动。
总的来说,这个工具类提供了一个简洁的接口,使得开发者能够方便地在Java应用中对图像进行裁剪和缩放操作,而无需深入理解底层的图像处理细节。测试类则确保了这些操作的正确性和稳定性。在实际项目中,这样的工具类...
5. **图片处理工具类**:可能包括图片的加载、缩放、裁剪、圆角处理等功能,如`ImageUtil`,可以优化图片加载的性能,避免内存溢出。 6. **文件操作工具类**:如`FileUtil`,提供文件的创建、删除、复制、移动、...
FFmpeg 是一个强大的开源命令行工具,用于处理音频和视频文件。它支持各种编码、解码、转换、流媒体操作,以及许多其他功能。在Java开发中,通过封装FFmpeg命令,可以方便地在应用程序中集成音视频处理功能。本...
5. **`SendEmailUtils.txt`**: 这个文件可能是源代码文件或者一个包含示例代码的文本文件,用于展示如何使用这个邮件工具类。文件中可能包含了类定义、方法声明,以及必要的注释来解释如何配置和使用这个工具类。 6...
3. **BitmapUtil**: 图片处理工具类,用于处理图片的加载、缩放、裁剪、压缩等。在Android应用中,图片的优化对于性能和用户体验至关重要,因此BitmapUtil能够减少内存消耗,防止OOM(内存溢出)问题。 4. **...
本篇将深入探讨Android图片处理工具的相关知识点,帮助开发者更好地理解和运用这些工具。 首先,Android SDK本身提供了基本的图片处理能力,例如Bitmap类,它是Android中处理图像的基础。Bitmap可以用来加载、创建...