`
liuxing87327
  • 浏览: 82148 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用jmagick将CMYK转换为RGB

阅读更多

最近发现公司图片库中有些打水印的图片水印色彩和其他的不一样,后来发现是设计师上传的图片的色彩值是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));
    }

 

 

分享到:
评论

相关推荐

    用jmagick实现cmyk图片转rgb

    内容:【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中,按照例子编写代码即可

    jmagick6.4.0

    3. **颜色空间转换**:支持RGB、CMYK、灰度、索引颜色等多种颜色空间之间的转换,这对于颜色管理非常重要。 4. **像素级访问**:通过API可以直接访问和修改图像的每一个像素,实现自定义的图像处理算法。 5. **...

    jmagick.jar 用法

    ImageMagick 是一个功能强大的跨平台图像处理工具,而 JMagick 则是将这些功能引入 Java 应用程序的桥梁。通过 JMagick,Java 开发者可以利用 C++ 编写的 ImageMagick 库的强大功能,无需直接编写原生代码或使用 JNI...

    Jmagick32位的和Jmagick64位的Jmagick.dll,Jmagick.jar

    压缩包中还包含了一个名为`jmagick_linux-6.2.6.jar`的文件,这表明Jmagick不仅限于Windows环境,也支持Linux平台。在Linux系统中,Jmagick同样需要对应的动态库文件(如libjmajick.so)来工作。 5. **应用实例** ...

    jmagick安装和配置

    本文将详细介绍如何在Java环境中安装和配置JMagick,以及如何使用提供的示例进行测试。 ### 1. 获取必备组件 首先,你需要下载以下两个关键组件: - **jmagick.dll**: 这是JMagick的核心动态链接库,它提供了Java...

    jmagick jmagick.jar jmagick资料

    里面包括jmagick 所需所有文件,jmagick.dll,jmagick.jar 还有安装文件, 以及linux安装说明! jmagick jmagick.jar jmagick资料 jmagick缩略图 jmagick jmagick.jar jmagick资料 jmagick缩略图

    jmagick-win-6.3.9-Q16

    5. 颜色空间转换:可以将图像从一种颜色空间转换到另一种,如RGB到CMYK,以适应不同的显示或打印需求。 6. 效果滤镜:JMagick提供了多种滤镜效果,如模糊、锐化、边框等,可以增强图像的艺术表现力。 7. 层次操作...

    jmagick-6.2.4-1-IM-6.2.5.zip

    标题中的"jmagick-6.2.4-1-IM-6.2.5.zip"指的是JMagick的一个特定版本,这是一个Java绑定的ImageMagick库,用于处理图像操作和转换。ImageMagick是一个开源的跨平台命令行工具集,广泛用于在各种文件格式之间进行...

    jmagick 例子

    本文将深入探讨JMagick的使用实例以及如何在处理图像时防止内存泄露,以确保程序的稳定性和高效性。 JMagick是Java接口到ImageMagick的一个扩展,ImageMagick是一款强大的跨平台命令行工具,用于转换、编辑和合成...

    jmagick-win-5.5.7-Q8.zip

    本文将深入探讨JMagick的核心概念、安装过程、使用方法以及一些实际的应用示例。 首先,JMagick是ImageMagick的一个Java接口,它允许Java应用程序调用ImageMagick的丰富的图像处理功能,如图像转换、裁剪、调整大小...

    jmagick.zip

    JMagick与ImageMagick是两个在图像处理领域中广泛使用的开源库,尤其在Java环境中,它们为开发者提供了强大的图像处理功能。本文将深入探讨这两个工具的核心概念、功能以及如何在实际项目中应用。 首先,JMagick是...

    jmagick 软件、安装说明(window和linux两个版本)

    - **转换图像**:使用`Image`类的`writeImage`方法将图像写入新的文件或流。 - **调整大小**:使用`Image`类的`scaleImage`方法改变图像尺寸。 - **裁剪图像**:通过创建`Rectangle`对象并调用`cropImage`方法实现...

    jmagick-win-6.3.9

    本文将深入探讨JMagick的特性和应用场景,以及如何在Windows环境下安装和使用6.3.9版本。 JMagick是ImageMagick的一个Java绑定,ImageMagick是一款强大的跨平台图像处理软件,支持超过100种不同的图像格式。通过...

    jmagick 用法

    本文将详细介绍 JMagick 的使用方法和关键知识点。 **1. 安装与配置** 首先,你需要下载 JMagick 和 ImageMagick。JMagick 通常会提供与特定版本的 ImageMagick 相匹配的 jar 包。将 `jmagick.jar` 添加到你的项目...

    JMagick图片处理

    安装完成后,可以将JMagick(如`jmagick-win-6.3.9-Q16.zip`)集成到Java项目中,利用其提供的API进行图像处理操作。 `使用说明.txt`和`安装说明.txt`文件分别提供了详细的步骤指导,帮助用户了解如何正确安装和...

    JMagick-5.5.6-0.tar.gz

    JMagick是Java版的ImageMagick,ImageMagick是一款广泛使用的开源图像处理软件,能够读取、转换和保存各种格式的图像。JMagick则将其功能融入到Java环境中,使得Java开发者可以利用C++编写的ImageMagick库进行图像...

    jmagick-6.2.4-1-IM-6.2.5.jar,ImageMagick-6.2.5-4-Q16-windows-dll.exe

    **压缩包子文件的文件名称列表** 中,"ImageMagick 详细安装使用 linux (jmagick)_java.mht"可能是一个包含如何在Linux系统上安装和使用JavaMagick的教程文件,.mht是MHTML(多用途互联网邮件扩展)文件,通常用来...

    ImageMagick-6.3.9+jmagick组合

    2. **JNI技术**:JMagick通过Java Native Interface (JNI) 技术实现了Java和C/C++代码的交互,将ImageMagick的功能引入到Java世界。 3. **易用性**:JMagick简化了在Java中进行复杂图像处理的工作,开发者无需了解...

    jmagick linux file

    jmagick image generate or operator library

    Jmagick缩图 JAVA图片处理

    在IT行业中,图片处理是...总的来说,JMagick为Java开发者提供了一种强大而灵活的工具,用于处理图片,特别是生成缩略图。结合提供的示例代码,开发者可以迅速将JMagick集成到自己的项目中,提升图片处理的效率和质量。

Global site tag (gtag.js) - Google Analytics