怎么把CMYK格式的图片专为RGB

问题描述

找了2个星期,也没有找到合适的答案!头疼!

解决方案

解决方案二:
用java程序转?
解决方案三:
一般都是RGB转的CMYK,没见过CMYK转RGB,一般都有RGB的原图的
解决方案四:
有呀,我就是想用JAVA的程序查看CMYK格式的图片,因为我们公司是做印刷的!
解决方案五:
用下面代码可以读入cmyk图片。//extractmetadatapublicstaticBufferedImagereadImage(Filefile)throwsIOException{//GetanImageReader.ImageInputStreaminput=ImageIO.createImageInputStream(file);Iteratorreaders=ImageIO.getImageReaders(input);if(readers==null||!readers.hasNext()){thrownewRuntimeException("NoImageReadersfound");}ImageReaderreader=(ImageReader)readers.next();reader.setInput(input);Stringformat=reader.getFormatName();if("JPEG".equalsIgnoreCase(format)||"JPG".equalsIgnoreCase(format)){IIOMetadatametadata=reader.getImageMetadata(0);StringmetadataFormat=metadata.getNativeMetadataFormatName();IIOMetadataNodeiioNode=(IIOMetadataNode)metadata.getAsTree(metadataFormat);NodeListchildren=iioNode.getElementsByTagName("app14Adobe");if(children.getLength()>0){iioNode=(IIOMetadataNode)children.item(0);inttransform=Integer.parseInt(iioNode.getAttribute("transform"));Rasterraster=reader.readRaster(0,reader.getDefaultReadParam());if(input!=null)input.close();reader.dispose();returncreateJPEG4(raster,transform);}}thrownewRuntimeException("NoImageReadersfound");}/**Java'sImageIOcan'tprocess4-componentimagesandJava2Dcan'tapplyAffineTransformOpeither,soconvertrasterdatatoRGB.TechniqueduetoMArkStephens.Freeforanyuse.*/privatestaticBufferedImagecreateJPEG4(Rasterraster,intxform){intw=raster.getWidth();inth=raster.getHeight();byte[]rgb=newbyte[w*h*3];//if(Adobe_APP14andtransform==2)thenYCCKelseCMYKif(xform==2){//YCCK--Adobefloat[]Y=raster.getSamples(0,0,w,h,0,(float[])null);float[]Cb=raster.getSamples(0,0,w,h,1,(float[])null);float[]Cr=raster.getSamples(0,0,w,h,2,(float[])null);float[]K=raster.getSamples(0,0,w,h,3,(float[])null);for(inti=0,imax=Y.length,base=0;i<imax;i++,base+=3){floatk=220-K[i],y=255-Y[i],cb=255-Cb[i],cr=255-Cr[i];doubleval=y+1.402*(cr-128)-k;val=(val-128)*.65f+128;rgb[base]=val<0.0?(byte)0:val>255.0?(byte)0xff:(byte)(val+0.5);val=y-0.34414*(cb-128)-0.71414*(cr-128)-k;val=(val-128)*.65f+128;rgb[base+1]=val<0.0?(byte)0:val>255.0?(byte)0xff:(byte)(val+0.5);val=y+1.772*(cb-128)-k;val=(val-128)*.65f+128;rgb[base+2]=val<0.0?(byte)0:val>255.0?(byte)0xff:(byte)(val+0.5);}}else{//assertxform==0:xform;//CMYKint[]C=raster.getSamples(0,0,w,h,0,(int[])null);int[]M=raster.getSamples(0,0,w,h,1,(int[])null);int[]Y=raster.getSamples(0,0,w,h,2,(int[])null);int[]K=raster.getSamples(0,0,w,h,3,(int[])null);for(inti=0,imax=C.length,base=0;i<imax;i++,base+=3){intc=255-C[i];intm=255-M[i];inty=255-Y[i];intk=255-K[i];floatkk=k/255f;rgb[base]=(byte)(255-Math.min(255f,c*kk+k));rgb[base+1]=(byte)(255-Math.min(255f,m*kk+k));rgb[base+2]=(byte)(255-Math.min(255f,y*kk+k));}}//fromotherimagetypesweknowInterleavedRaster'scanbe//manipulatedbyAffineTransformOp,socreateoneofthose.raster=Raster.createInterleavedRaster(newDataBufferByte(rgb,rgb.length),w,h,w*3,3,newint[]{0,1,2},null);ColorSpacecs=ColorSpace.getInstance(ColorSpace.CS_sRGB);ColorModelcm=newComponentColorModel(cs,false,true,Transparency.OPAQUE,DataBuffer.TYPE_BYTE);returnnewBufferedImage(cm,(WritableRaster)raster,true,null);}

解决方案六:
引用4楼sgcl的回复:

用下面代码可以读入cmyk图片。Javacode//extractmetadatapublicstaticBufferedImagereadImage(Filefile)throwsIOException{//GetanImageReader.ImageInputStreaminput=ImageIO……

这个是能读的,可惜颜色不对!

时间: 2024-09-20 05:50:01

怎么把CMYK格式的图片专为RGB的相关文章

tga格式的图片应该用怎么打开

  tga格式的图片应该用怎么打开?tga文件是一种图形图像数据的通用格式,按电脑常规方式是无法将该文件打开的.tga文件现今已被国际上的图形.图像工业所接受.TGA文件的结构又是很简单.那么,tga文件怎么打开呢? tga是什么文件? tga格式是图片专有格式,专用于Truevision(R)视频版系统,TGA格式(Tagged Graphics)是由美国Truevision公司为其显示卡开发的一种图像文件格式,文件后缀为".tga",已被国际上的图形.图像工业所接受.TGA的结构比

微信浏览器安卓机无法保存canvas转成img格式的图片

问题描述 微信浏览器安卓机无法保存canvas转成img格式的图片 大家好,如何解决安卓机微信内置浏览器无法保存canvas转成img格式的图片 (长按图片,无法发送给朋友.保存到手机,甚至无法收藏)的问题,我有想过将canvas转成img格式的图片传回服务器端进行处理,保存再显示出来,但data:image/png;base64的长度太长了,没成功. 有什么可以解决这问题?? 解决方案 用img加载base64图片信息不行?canvas隐藏起来而不是直接显示canvas对象 解决方案二: 嗯,

怎么用dcm4che 把dcm格式的图片转成jpg格式啊?

问题描述 怎么用dcm4che 把dcm格式的图片转成jpg格式啊? 我的代码如下: import java.io.File; import java.io.IOException; import org.dcm4che3.tool.dcm2jpg.Dcm2Jpg; import org.junit.Test; public class TestDcm2jpg { @Test public void testDcm2jpg2(){ try{ File src = new File("E:/影像实

excel数据-excel中使用kutools将图片从tif转换成jpg格式后图片序列改变了,怎么破?

问题描述 excel中使用kutools将图片从tif转换成jpg格式后图片序列改变了,怎么破? 办公时excel中有大量的图片需要从tif转成jpg格式,使用kutools可以迅速直接转换格式,但是导回excel中时图片顺序发生改变. 是否有什么编程语言或者改变转换图片格式的软件也可以,解决这个问题? 非常感谢!

Win7系统如何快速搜索到后缀名为jpg格式的图片

  Win7系统如何快速搜索到后缀名为jpg格式的图片          具体方法如下: 解决方法一: 1.打开电脑,点击桌面上的[计算机],小编是win7系统,所以是计算机; 2.打开计算机文件夹后,在右上角搜索计算机框中,会出现3种格式,类型.修改日期.大小,一般找图片都是选择类型,点击[类型]; 3.输入图片类型格式,这里先输入jpg,输入完后会自动搜索,现在就开始在搜索jpg格式的所有图片; 4.如果要找png格式图片,输入png就可以,任何格式的图片都是输入后缀名就可以; 解决方法二:

visio绘制的图片怎么转换为jpg格式的图片?

  visio绘制的图片怎么转换为jpg格式的图片?          1.打开visio,设计流程图,一般基金书用的多,投稿的时候算法流程图也得用这个,相对来说和word兼容的很好了.简单步骤就不说了,设计好的流程图如下. 2.点击另存为->增强型图元文件.emf.切记,你可以尝试转化为JPEG等图片,提高分辨率等,这个百度经验里有同学写了,但我试过,效果非常差,所以今天将这个写下来,相信很多人还会碰到这个问题的. 3.打开word,点击插入->图片->来自文件->增强型图元文件

torch7中如何加载bmp格式的图片?

问题描述 torch7中如何加载bmp格式的图片? 因为需要用到特定的数据集,数据集里都是bmp格式的图片.torch中通过image.load()不能加载bmp格式的图片,但是由于数据集太大,不方便做批量格式转换,请问有其他的可选方案吗? 解决方案 转载博客地址:http://www.cnblogs.com/landmark/ 到现在为止我们只创建了一个窗口,其他什么都没干,这次我们将在窗口里显示图片,这是视频子系统最常用的功能,显示图片.SDL视频子系统只能加载bmp格式的位图.调用函数是S

保存类型-vc++代码,缓存中存储图像像素的数据,如何将其保存成jpg格式的图片

问题描述 vc++代码,缓存中存储图像像素的数据,如何将其保存成jpg格式的图片 是这样的,我通过Matrox采集卡获取到摄像机的模拟图像,通过mil中的函数,可以将其保存成bsq格式的图片(采集卡中自带函数存贮的图像类型byte型,可直接保存成bsq,见下面代码),通过读取存贮内存中的数据,可以得到图片的像素信息了.现在想将buf中的数据保存成jpg格式的,求高手解答. void CCaijiDlg::OnSave() { // TODO: Add your control notificat

图片加载-怎么在一个对话框中单击一个按钮后在另一个对话框中的picture控件中显示一张bmp格式的图片

问题描述 怎么在一个对话框中单击一个按钮后在另一个对话框中的picture控件中显示一张bmp格式的图片 我是大一学生,在用mfc做一个员工管理系统,要求在一个对话框的list control 控件中选择一条员工信息,点击一下"显示全部信息"按钮后,弹出一个对话框,这个对话框上的picture控件能显示这个人对应的照片.这个人对应的照片我放在资源文件夹下面.其他我都会,就是照片显示这方面我不知道应该怎么做?各位大神求指教. 解决方案 一个对话框调用另一个对话框的控件值 解决方案二: h