`
liuxing87327
  • 浏览: 83156 次
  • 性别: 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));
    }

 

 

分享到:
评论

相关推荐

    jmagick6.4.0

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

    jmagick-win-6.3.9-Q16

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

    ImageMagick学习

    2. **颜色空间和通道**:理解RGB、CMYK、灰度等颜色模型,以及如何在不同颜色空间之间转换。 3. **图像合成与变换**:学习如何通过组合多个图像、添加边框、进行旋转、翻转等操作。 4. **图像处理与滤镜**:了解...

    ImageMagick 6.4.1-3中文版下载-ImageMagick 6.4.1-3绿色软件下载

    它可以读取、转换、写入多种格式的图片。 图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线, 多边形,椭圆,曲线,附加到图片伸展旋转。 ImageMagick是免费软件:全部源码开放,可以自由使用,...

    ImageMagick 最新版

    它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。ImageMagick是免费软件:全部源码开放,可以自由***,复制,...

    Imagemagic 图片处理

    它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。ImageMagick是免费软件:全部源码开放,可以自由***,复制,...

Global site tag (gtag.js) - Google Analytics