commons-imaging(图像处理库)
概述
纯Java的开源图像处理库,支持多种格式的读写和操作,适合需要跨平台图像处理的项目
maven依赖
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-imaging</artifactId><version>1.0-alpha2</version></dependency>
相关API
Imaging 图像读写、格式转换、元数据处理等基础功能
方法 | 描述 |
---|---|
hasImageFileExtension(File file) hasImageFileExtension(String fileName) | 判断文件是否有图片后缀名 |
guessFormat(byte[] bytes) guessFormat(File file) guessFormat(ByteSource byteSource) | 获取图片的格式 |
getICCProfile(byte[] bytes) getICCProfile(byte[] bytes, Map<String, Object> params) getICCProfile(InputStream is, String fileName) getICCProfile(InputStream is, String fileName, Map<String, Object> params) getICCProfile(File file) getICCProfile(File file, Map<String, Object> params) | 获取图片色彩描述对象 |
getICCProfileBytes(byte[] bytes) getICCProfileBytes(byte[] bytes, Map<String, Object> params) getICCProfileBytes(File file) getICCProfileBytes(File file, Map<String, Object> params) | 获取图片色彩描述字节数组 |
getImageInfo(String fileName, byte[] bytes, Map<String, Object> params) getImageInfo(String fileName, byte[] bytes) getImageInfo(InputStream is, String fileName) getImageInfo(InputStream is, String fileName, Map<String, Object> params) getImageInfo(byte[] bytes) getImageInfo(byte[] bytes, Map<String, Object> params) getImageInfo(File file, Map<String, Object> params) getImageInfo(File file) | 获取图片详情信息 |
getImageSize(InputStream is, String fileName) getImageSize(InputStream is, String fileName, Map<String, Object> params) getImageSize(byte[] bytes) getImageSize(byte[] bytes, Map<String, Object> params) getImageSize(File file) getImageSize(File file, Map<String, Object> params) getImageSize(ByteSource byteSource, Map<String, Object> params) | 获取图片的尺寸大小 |
getXmpXml(InputStream is, String fileName) getXmpXml(InputStream is, String fileName, Map<String, Object> params) getXmpXml(byte[] bytes) getXmpXml(byte[] bytes, Map<String, Object> params) getXmpXml(File file) getXmpXml(File file, Map<String, Object> params) getXmpXml(ByteSource byteSource, Map<String, Object> params) | 用于提取图像 XMP 元数据 |
getMetadata(byte[] bytes) getMetadata(byte[] bytes, Map<String, Object> params) getMetadata(InputStream is, String fileName) getMetadata(InputStream is, String fileName, Map<String, Object> params) getMetadata(File file) getMetadata(File file, Map<String, Object> params) | 获取图片(手机、照相机等拍摄的图片)的元数据,注意:截图(未写入过)的元数据为null |
dumpImageFile(byte[] bytes) dumpImageFile(File file) | 用于将图像文件内容以十六进制(Hex)或文本格式转储输出 |
getFormatCompliance(byte[] bytes) getFormatCompliance(File file) | 用于验证图像文件是否符合指定格式规范的工具方法 |
getAllBufferedImages(InputStream is, String fileName) getAllBufferedImages(byte[] bytes) getAllBufferedImages(File file) | 从多页图像格式(如 GIF、TIFF)中提取所有 BufferedImage 对象。 |
getBufferedImage(InputStream is) getBufferedImage(InputStream is, Map<String, Object> params) getBufferedImage(byte[] bytes) getBufferedImage(byte[] bytes, Map<String, Object> params) getBufferedImage(File file) getBufferedImage(File file, Map<String, Object> params) | 读取图像内容到BufferedImage对象 |
writeImage(BufferedImage src, File file, ImageFormat format, Map<String, Object> params) writeImage(BufferedImage src, OutputStream os, ImageFormat format, Map<String, Object> params) | 将BufferedImage对象转换为图片文件或输出流 |
writeImageToBytes(BufferedImage src, ImageFormat format, Map<String, Object> params) | 将BufferedImage对象转换为字节数组 |
ICC_Profile 加载和管理 ICC 色彩配置文件
方法 | 描述 |
---|---|
getInstance(byte[] data) getInstance (int cspace) getInstance(String fileName) getInstance(InputStream s) | 用于加载 ICC 色彩配置文件 |
getMajorVersion() | 用于获取图像格式主版本号 |
getMinorVersion() | 用于获取图像格式次版本号 |
getProfileClass() | 用于获取 ICC 色彩配置文件类型 |
getColorSpaceType() | 用于获取 ICC 色彩配置文件色彩空间类型 |
getPCSType() | 用于获取图像色彩空间类型 |
write(String fileName) write(OutputStream s) | 用于将 BufferedImage 对象写入文件 |
getData() getData(int tagSignature) | 用于获取ICC 色彩配置文件数据的 |
setData(int tagSignature, byte[] tagData) | 用于设置 ICC 色彩配置文件数据的 |
getNumComponents() | 用于获取图像的颜色分量数量 |
ImageInfo 图像基础属性和元数据
方法 | 描述 |
---|---|
getBitsPerPixel() | 用于获取图像每个像素的色深(位深度) |
getComments() | 用于获取图像文件中的注释信息列表 |
getFormat() | 获取图像类型 |
getFormatName() | 获取图像类型 |
getWidth() | 像素尺寸,宽 |
getHeight() | 像素尺寸,高 |
getMimeType() | 用于获取图像的MIME类型字符串 |
getNumberOfImages() | 用于获取图像文件中包含的图像数量 |
getPhysicalHeightDpi() | 返回 DPI(每英寸点数)。 |
getPhysicalHeightInch() | 用于获取图像的物理高度 |
getPhysicalWidthDpi() | 返回 DPI(每英寸点数)。 |
getPhysicalWidthInch() | 用于获取图像的物理宽度 |
isProgressive() | 用于判断图像是否为渐进式或交错式显示 |
getColorType() | 用于获取图像的颜色类型 |
dump() | 用于将图像的元数据信息以文本形式输出到控制台或日志,主要用于调试和开发阶段快速查看图像属性 |
toString() toString(PrintWriter pw, String prefix) | |
getFormatDetails() | 用于获取图像文件格式的详细描述信息(如版本号、编码特性等) |
isTransparent() | 用于判断图像是否具有透明通道(Alpha通道) |
usesPalette() | 用于判断图像是否使用调色板(Palette)存储颜色数据 |
getCompressionAlgorithm() | 用于获取图像的压缩算法描述信息 |
ImageFormat 图像格式
方法 | 描述 |
---|---|
getName() | 用于获取图像格式名称 |
getExtension() | 用于获取图像格式默认文件扩展名 |
Dimension 图像尺寸
方法 | 描述 |
---|---|
getWidth() | 用于获取 Dimension 对象宽度值 |
getHeight() | 用于获取 Dimension 对象高度值 |
getSize() | 用于获取 Dimension 对象的大小 |
setSize(Dimension d) setSize(int width, int height) setSize(double width, double height) | 设置大小 |
ImageMetadata 解析和操作图像元数据
方法 | 描述 |
---|---|
toString(String var1) | 对元数据转字符串 |
getItems() | 用于获取图像元数据列表 |
FormatCompliance 验证图像格式合规性
方法 | 描述 |
---|---|
getDefault() | 用于初始化默认合规规则 |
FormatCompliance(String description) FormatCompliance(String description, boolean failOnError) | 构造方法 |
addComment(String comment) addComment(String comment, int value) | 用于向图像文件添加注释信息的工具方法,适用于需要嵌入自定义元数据或说明文本 |
dump() dump(PrintWriter pw) | 用于将图像格式合规性检查结果以文本形式输出 |
compareBytes(String name, byte[] expected, byte[] actual) | 用于比较两个字节数组是否代表相同图像数据 |
checkBounds(String name, int min, int max, int actual) | 用于边界检查 |
compare(String name, int valid, int actual) compare(String name, int[] valid, int actual) | 用于比较两个字节数组是否代表相同图像数据 |
ColorTools 颜色空间转换和色彩管理
方法 | 描述 |
---|---|
correctImage(BufferedImage src, File file) | 纠正图片 |
relabelColorSpace(BufferedImage bi, ICC_Profile profile) relabelColorSpace(BufferedImage bi, ColorSpace cs) relabelColorSpace(BufferedImage bi, ColorModel cm) | 用于重新标记 BufferedImage 颜色空间 |
deriveColorModel(BufferedImage bi, ColorSpace cs) deriveColorModel(BufferedImage bi, ColorSpace cs, boolean forceNoAlpha) deriveColorModel(ColorModel colorModel, ColorSpace cs, boolean forceNoAlpha) | 用于图像颜色空间转换 |
convertToColorSpace(BufferedImage bi, ColorSpace to) | 用于将 BufferedImage 从当前颜色空间转换到目标颜色空间 |
convertTosRGB(BufferedImage bi) | 用于将 BufferedImage 强制转换为 sRGB 颜色空间 |
convertBetweenICCProfiles(BufferedImage bi, ICC_Profile from, ICC_Profile to) | 用于在两个 ICC 配置文件之间转换 BufferedImage 颜色空间 |
convertToICCProfile(BufferedImage bi, ICC_Profile to) | 用于将 BufferedImage 转换到指定 ICC 配置文件定义的颜色空间 |
convertBetweenColorSpacesX2(BufferedImage bi, ColorSpace from, ColorSpace to) | 通过两次转换和中间重采样实现更高精度的颜色空间变换,适用于对色彩准确性要求极高的场景 |
convertBetweenColorSpaces(BufferedImage bi, ColorSpace from, ColorSpace to) | 用于在两个颜色空间之间转换 BufferedImage |