Better take on InvertedLuminanceSource -- allow possibility of rotation and efficient un-inversion

git-svn-id: https://zxing.googlecode.com/svn/trunk@2576 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This commit is contained in:
srowen@gmail.com 2013-02-19 20:53:30 +00:00
parent d863e71a10
commit 01e43af170
2 changed files with 34 additions and 1 deletions

View file

@ -52,4 +52,37 @@ public final class InvertedLuminanceSource extends LuminanceSource {
return invertedMatrix; return invertedMatrix;
} }
@Override
public boolean isCropSupported() {
return delegate.isCropSupported();
}
@Override
public LuminanceSource crop(int left, int top, int width, int height) {
return new InvertedLuminanceSource(delegate.crop(left, top, width, height));
}
@Override
public boolean isRotateSupported() {
return delegate.isRotateSupported();
}
/**
* @return original delegate {@link LuminanceSource} since invert undoes itself
*/
@Override
public LuminanceSource invert() {
return delegate;
}
@Override
public LuminanceSource rotateCounterClockwise() {
return new InvertedLuminanceSource(delegate.rotateCounterClockwise());
}
@Override
public LuminanceSource rotateCounterClockwise45() {
return new InvertedLuminanceSource(delegate.rotateCounterClockwise45());
}
} }

View file

@ -105,7 +105,7 @@ public abstract class LuminanceSource {
* @return a wrapper of this {@code LuminanceSource} which inverts the luminances it returns -- black becomes * @return a wrapper of this {@code LuminanceSource} which inverts the luminances it returns -- black becomes
* white and vice versa, and each value becomes (255-value). * white and vice versa, and each value becomes (255-value).
*/ */
public final LuminanceSource invert() { public LuminanceSource invert() {
return new InvertedLuminanceSource(this); return new InvertedLuminanceSource(this);
} }