"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceCMYK.java" between
pdfbox-2.0.23-src.zip and pdfbox-2.0.24-src.zip

About: Apache PDFBox is a Java PDF library tool that allows creation of new PDF documents, manipulation of existing documents and the ability to extract content from documents.

PDDeviceCMYK.java  (pdfbox-2.0.23-src):PDDeviceCMYK.java  (pdfbox-2.0.24-src)
skipping to change at line 169 skipping to change at line 169
{ {
if (usePureJavaCMYKConversion) if (usePureJavaCMYKConversion)
{ {
BufferedImage dest = new BufferedImage(raster.getWidth(), raster.get Height(), BufferedImage dest = new BufferedImage(raster.getWidth(), raster.get Height(),
BufferedImage.TYPE_INT_RGB); BufferedImage.TYPE_INT_RGB);
ColorSpace destCS = dest.getColorModel().getColorSpace(); ColorSpace destCS = dest.getColorModel().getColorSpace();
WritableRaster destRaster = dest.getRaster(); WritableRaster destRaster = dest.getRaster();
float[] srcValues = new float[4]; float[] srcValues = new float[4];
float[] lastValues = new float[] { -1.0f, -1.0f, -1.0f, -1.0f }; float[] lastValues = new float[] { -1.0f, -1.0f, -1.0f, -1.0f };
float[] destValues = new float[3]; float[] destValues = new float[3];
int width = raster.getWidth();
int startX = raster.getMinX(); int startX = raster.getMinX();
int height = raster.getHeight();
int startY = raster.getMinY(); int startY = raster.getMinY();
for (int x = startX; x < width + startX; x++) int endX = raster.getWidth() + startX;
int endY = raster.getHeight() + startY;
for (int x = startX; x < endX; x++)
{ {
for (int y = startY; y < height + startY; y++) for (int y = startY; y < endY; y++)
{ {
raster.getPixel(x, y, srcValues); raster.getPixel(x, y, srcValues);
// check if the last value can be reused // check if the last value can be reused
if (!Arrays.equals(lastValues, srcValues)) if (!Arrays.equals(lastValues, srcValues))
{ {
for (int k = 0; k < 4; k++) lastValues[0] = srcValues[0];
{ srcValues[0] = srcValues[0] / 255f;
lastValues[k] = srcValues[k];
srcValues[k] = srcValues[k] / 255f; lastValues[1] = srcValues[1];
} srcValues[1] = srcValues[1] / 255f;
lastValues[2] = srcValues[2];
srcValues[2] = srcValues[2] / 255f;
lastValues[3] = srcValues[3];
srcValues[3] = srcValues[3] / 255f;
// use CIEXYZ as intermediate format to optimize the col or conversion // use CIEXYZ as intermediate format to optimize the col or conversion
destValues = destCS.fromCIEXYZ(colorSpace.toCIEXYZ(srcVa lues)); destValues = destCS.fromCIEXYZ(colorSpace.toCIEXYZ(srcVa lues));
for (int k = 0; k < destValues.length; k++) for (int k = 0; k < destValues.length; k++)
{ {
destValues[k] = destValues[k] * 255f; destValues[k] = destValues[k] * 255f;
} }
} }
destRaster.setPixel(x, y, destValues); destRaster.setPixel(x, y, destValues);
} }
} }
 End of changes. 5 change blocks. 
9 lines changed or deleted 16 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)