最近发现公司图片库中有些打水印的图片水印色彩和其他的不一样,后来发现是设计师上传的图片的色彩值是CMYK的,想要统一成RGB格式的。
之前使用的是jmagick进行的图片压缩和水印,看了一下jmagick的官方介绍,是有提供转换图片色彩格式的方法。记录一下,给碰到类似问题的同学提供参考。
jmagick的ColorspaceType里面是色彩格式对应的常量。
public static final int GRAYColorspace = 2; public static final int TransparentColorspace = 3; public static final int OHTAColorspace = 4; public static final int XYZColorspace = 5; public static final int YCbCrColorspace = 6; public static final int YCCColorspace = 7; public static final int YIQColorspace = 8; public static final int YPbPrColorspace = 9; public static final int YUVColorspace = 10; public static final int CMYKColorspace = 11; public static final int sRGBColorspace = 12;
将图片创建成MagickImage对象
ImageInfo imageInfo = new ImageInfo(filePath);
MagickImage fromImage = new MagickImage(imageInfo);
然后通过fromImage.getColorspace()可以拿到色彩格式
完整代码
/** * jmagick 将所有图片色彩统一为RGB * @param filePath 原图路径 * @param toFilePath 转换后的图片路径 * @return * @throws Exception */ public static InputStream convert2RGB(String filePath, String toFilePath) throws Exception{ InputStream stream = null; ImageInfo imageInfo = new ImageInfo(filePath); MagickImage fromImage = new MagickImage(imageInfo); if(fromImage.getColorspace() != ColorspaceType.RGBColorspace){ //因为是将所有其他格式转换为RGB格式,需要将当前文件的色彩格式传入 fromImage.transformRgbImage(fromImage.getColorspace()); fromImage.setFileName(toFilePath); fromImage.writeImage(imageInfo); stream = new FileInputStream(toFilePath); return stream; } return new FileInputStream(new File(filePath)); }
相关推荐
内容:【ImageMagick-6.3.9-0-Q16-windows-dll.exe安装文件】【jmagick-win-6.3.9-Q16内有jar包和dll...2、将jmagick.dll文件拷贝到JAVA_HOME\bin目录下 3、讲jmagick.jar包加入自己的工程lib中,按照例子编写代码即可
压缩包中还包含了一个名为`jmagick_linux-6.2.6.jar`的文件,这表明Jmagick不仅限于Windows环境,也支持Linux平台。在Linux系统中,Jmagick同样需要对应的动态库文件(如libjmajick.so)来工作。 5. **应用实例** ...
3. **颜色空间转换**:支持RGB、CMYK、灰度、索引颜色等多种颜色空间之间的转换,这对于颜色管理非常重要。 4. **像素级访问**:通过API可以直接访问和修改图像的每一个像素,实现自定义的图像处理算法。 5. **...
ImageMagick 是一个功能强大的跨平台图像处理工具,而 JMagick 则是将这些功能引入 Java 应用程序的桥梁。通过 JMagick,Java 开发者可以利用 C++ 编写的 ImageMagick 库的强大功能,无需直接编写原生代码或使用 JNI...
本文将详细介绍如何在Java环境中安装和配置JMagick,以及如何使用提供的示例进行测试。 ### 1. 获取必备组件 首先,你需要下载以下两个关键组件: - **jmagick.dll**: 这是JMagick的核心动态链接库,它提供了Java...
里面包括jmagick 所需所有文件,jmagick.dll,jmagick.jar 还有安装文件, 以及linux安装说明! jmagick jmagick.jar jmagick资料 jmagick缩略图 jmagick jmagick.jar jmagick资料 jmagick缩略图
5. 颜色空间转换:可以将图像从一种颜色空间转换到另一种,如RGB到CMYK,以适应不同的显示或打印需求。 6. 效果滤镜:JMagick提供了多种滤镜效果,如模糊、锐化、边框等,可以增强图像的艺术表现力。 7. 层次操作...
本文将深入探讨JMagick的使用实例以及如何在处理图像时防止内存泄露,以确保程序的稳定性和高效性。 JMagick是Java接口到ImageMagick的一个扩展,ImageMagick是一款强大的跨平台命令行工具,用于转换、编辑和合成...
本文将深入探讨JMagick的核心概念、安装过程、使用方法以及一些实际的应用示例。 首先,JMagick是ImageMagick的一个Java接口,它允许Java应用程序调用ImageMagick的丰富的图像处理功能,如图像转换、裁剪、调整大小...
JMagick与ImageMagick是两个在图像处理领域中广泛使用的开源库,尤其在Java环境中,它们为开发者提供了强大的图像处理功能。本文将深入探讨这两个工具的核心概念、功能以及如何在实际项目中应用。 首先,JMagick是...
- **转换图像**:使用`Image`类的`writeImage`方法将图像写入新的文件或流。 - **调整大小**:使用`Image`类的`scaleImage`方法改变图像尺寸。 - **裁剪图像**:通过创建`Rectangle`对象并调用`cropImage`方法实现...
标题中的"jmagick-6.2.4-1-IM-6.2.5.zip"指的是JMagick的一个特定版本,这是一个Java绑定的ImageMagick库,用于处理图像操作和转换。ImageMagick是一个开源的跨平台命令行工具集,广泛用于在各种文件格式之间进行...
本文将深入探讨JMagick的特性和应用场景,以及如何在Windows环境下安装和使用6.3.9版本。 JMagick是ImageMagick的一个Java绑定,ImageMagick是一款强大的跨平台图像处理软件,支持超过100种不同的图像格式。通过...
本文将详细介绍 JMagick 的使用方法和关键知识点。 **1. 安装与配置** 首先,你需要下载 JMagick 和 ImageMagick。JMagick 通常会提供与特定版本的 ImageMagick 相匹配的 jar 包。将 `jmagick.jar` 添加到你的项目...
安装完成后,可以将JMagick(如`jmagick-win-6.3.9-Q16.zip`)集成到Java项目中,利用其提供的API进行图像处理操作。 `使用说明.txt`和`安装说明.txt`文件分别提供了详细的步骤指导,帮助用户了解如何正确安装和...
JMagick是Java版的ImageMagick,ImageMagick是一款广泛使用的开源图像处理软件,能够读取、转换和保存各种格式的图像。JMagick则将其功能融入到Java环境中,使得Java开发者可以利用C++编写的ImageMagick库进行图像...
**压缩包子文件的文件名称列表** 中,"ImageMagick 详细安装使用 linux (jmagick)_java.mht"可能是一个包含如何在Linux系统上安装和使用JavaMagick的教程文件,.mht是MHTML(多用途互联网邮件扩展)文件,通常用来...
2. **JNI技术**:JMagick通过Java Native Interface (JNI) 技术实现了Java和C/C++代码的交互,将ImageMagick的功能引入到Java世界。 3. **易用性**:JMagick简化了在Java中进行复杂图像处理的工作,开发者无需了解...
jmagick image generate or operator library
在IT行业中,图片处理是...总的来说,JMagick为Java开发者提供了一种强大而灵活的工具,用于处理图片,特别是生成缩略图。结合提供的示例代码,开发者可以迅速将JMagick集成到自己的项目中,提升图片处理的效率和质量。