最近发现公司图片库中有些打水印的图片水印色彩和其他的不一样,后来发现是设计师上传的图片的色彩值是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)); }
相关推荐
3. **颜色空间转换**:支持RGB、CMYK、灰度、索引颜色等多种颜色空间之间的转换,这对于颜色管理非常重要。 4. **像素级访问**:通过API可以直接访问和修改图像的每一个像素,实现自定义的图像处理算法。 5. **...
5. 颜色空间转换:可以将图像从一种颜色空间转换到另一种,如RGB到CMYK,以适应不同的显示或打印需求。 6. 效果滤镜:JMagick提供了多种滤镜效果,如模糊、锐化、边框等,可以增强图像的艺术表现力。 7. 层次操作...
2. **颜色空间和通道**:理解RGB、CMYK、灰度等颜色模型,以及如何在不同颜色空间之间转换。 3. **图像合成与变换**:学习如何通过组合多个图像、添加边框、进行旋转、翻转等操作。 4. **图像处理与滤镜**:了解...
它可以读取、转换、写入多种格式的图片。 图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线, 多边形,椭圆,曲线,附加到图片伸展旋转。 ImageMagick是免费软件:全部源码开放,可以自由使用,...
它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。ImageMagick是免费软件:全部源码开放,可以自由***,复制,...
它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。ImageMagick是免费软件:全部源码开放,可以自由***,复制,...