工业标准色

工业标准色

ISOcoated_v2_300_eci.icc 是一个工业的色彩标准文件。

  • CMYK 也称作印刷色彩模式。它和 RGB 相比最大不同是,RGB 模式是发光的色彩模式,你在一间黑暗的房间内仍然可以看见萤幕上的内容。
  • CMYK 是一种依靠反光的色彩模式,我们能阅读报纸的内容是为什么呢?是因阳光或灯光照射到报纸上,再把内容反射到我们的眼中。

CMYK 是需要有外界光源的情况下才可以看到的。所以在黑暗房间内是无法阅读的。只要是在印刷品上看到的图像,就是 CMYK 模式表现的。

<dependency>
    <groupId>javax.media.jai</groupId>
    <artifactId>com.springsource.javax.media.jai.codec</artifactId>
    <version>1.1.3</version>
</dependency>
class A{
    /**
	 * 将图片为 rgb 转化为 cmyk
	 * @param inputStream 图片输入流
	 * @param fileName 图片名词(绝对路径)
	 * @param newFileName 图片保存路径(绝对路径)(如果没有参数,则生成的图片在当前目录下,且格式为tif)
	 */
	public static void rgbToCmyk(InputStream inputStream,String fileName,String...newFileName) throws IOException{

		BufferedImage rgbImage = ImageIO.read(inputStream);
		BufferedImage cmykImage = null;
		ColorSpace cpace = new ICC_ColorSpace(ICC_Profile.getInstance(TestImageBinary.class.getClassLoader().getResourceAsStream("ISOcoated_v2_300_eci.icc")));
		ColorConvertOp op = new ColorConvertOp(rgbImage.getColorModel().getColorSpace(), cpace, null);
		cmykImage = op.filter(rgbImage, null);
		if(newFileName.length>0&&newFileName[0]!=null) {
			String targetFileName=fileName.substring(0,fileName.lastIndexOf(".")+1)+"tif";
			JAI.create("filestore", cmykImage,targetFileName,"TIFF");
			cmykImage.flush();
			base64StringToImage(targetFileName,newFileName[0]);//转成对应格式
			File file=new File(fileName);
			if(file.exists())
				file.delete();
		}else {
			String targetFileName=fileName.substring(0,fileName.lastIndexOf(".")+1)+"tif";
			JAI.create("filestore", cmykImage, targetFileName, "TIFF");
		}
	}
}

posted on   疯狂的妞妞  阅读(58)  评论(0编辑  收藏  举报

(评论功能已被禁用)
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示