From 8be8f286f3abec47424ae6bde3689455d096eabf Mon Sep 17 00:00:00 2001 From: Harald Kuhr Date: Wed, 30 Sep 2009 22:51:02 +0200 Subject: [PATCH] Clean-up of 1-bit subsampling. --- .../imageio/plugins/psd/PSDImageReader.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/twelvemonkeys-imageio/psd/src/main/java/com/twelvemonkeys/imageio/plugins/psd/PSDImageReader.java b/twelvemonkeys-imageio/psd/src/main/java/com/twelvemonkeys/imageio/plugins/psd/PSDImageReader.java index 3e8839a0..ddb14971 100644 --- a/twelvemonkeys-imageio/psd/src/main/java/com/twelvemonkeys/imageio/plugins/psd/PSDImageReader.java +++ b/twelvemonkeys-imageio/psd/src/main/java/com/twelvemonkeys/imageio/plugins/psd/PSDImageReader.java @@ -548,18 +548,20 @@ public class PSDImageReader extends ImageReaderBase { // Copy line sub sampled into real data int x = pSource.x; for (int i = 0; i < destWidth; i++) { - // TODO: FIXME! byte result = 0; + for (int j = 0; j < 8; j++) { int pos = x / 8; + if (pos >= row.length) { - break; + break; // Stay inside bounds... } int sourceBitOff = x % 8; int mask = 0x80 >> sourceBitOff; - - result |= (((row[pos] & mask) != 0) ? 1 : 0) << 7 - j; + int destBitOff = 7 - j; + + result |= (((row[pos] & mask) != 0) ? 1 : 0) << destBitOff; x += pXSub; }