Am 03.10.2018 um 20:08 schrieb Tilman Hausherr:
I could expand that one later so that it uses the raster of the actual
JPEG image from your PDF.
Your JPEG file is here:
https://drive.google.com/file/d/1HvXMet6Wygzmko9ZmY9_zlvhv72v_QHf/view?usp=sharing
The modified code - please test on different openjdks. It took 137935 on
oracle jdk8. (you may want to change the "50")
import java.awt.*;
import java.awt.color.*;
import java.awt.image.*;
import java.io.FileInputStream;
import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import javax.imageio.stream.MemoryCacheImageInputStream;
public class CConv
{
static BufferedImage toRGBImageAWT(WritableRaster raster,
ColorSpace colorSpace)
{
ColorModel colorModel = new ComponentColorModel(colorSpace,
false, false, Transparency.OPAQUE,
raster.getDataBuffer().getDataType());
BufferedImage src = new BufferedImage(colorModel, raster,
false, null);
BufferedImage dest = new BufferedImage(raster.getWidth(),
raster.getHeight(),
BufferedImage.TYPE_INT_RGB);
ColorConvertOp op = new ColorConvertOp(null);
//System.out.println("src="+src);
//System.out.println("dst="+dest);
op.filter(src, dest);
return dest;
}
public static void main(String args[]) throws Exception
{
ImageReader reader =
ImageIO.getImageReadersByFormatName("JPEG").next();
WritableRaster raster;
FileInputStream fis = new FileInputStream("cmyk.jpg");
try (ImageInputStream iis = new MemoryCacheImageInputStream(fis))
{
reader.setInput(iis);
ImageReadParam irp = reader.getDefaultReadParam();
raster = (WritableRaster) reader.readRaster(0, irp);
}
System.out.println("Raster: " + raster);
ICC_Profile profile =
ICC_Profile.getInstance("ISOcoated_v2_300_bas.icc");
ICC_ColorSpace colorSpace = new ICC_ColorSpace(profile);
long t0 = System.currentTimeMillis();
for (int i = 0; i < 50; i++)
{
toRGBImageAWT(raster, colorSpace);
}
long t1 = System.currentTimeMillis();
System.out.println((t1 - t0));
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]