/*
ChibiPaint
Copyright (c) 2006-2008 Marc Schefer
This file is part of ChibiPaint.
ChibiPaint is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ChibiPaint is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with ChibiPaint. If not, see <http://www.gnu.org/licenses/>.
*/
package com.chibipaint.engine;
public class CPGreyBmp extends CPBitmap {
public byte[] data;
// Allocates a new bitmap
public CPGreyBmp(int width, int height) {
super(width, height);
data = new byte[width * height];
}
public CPGreyBmp(CPGreyBmp original) {
super(original.width, original.height);
data = new byte[width * height];
System.arraycopy(original.data, 0, data, 0, width * height);
}
public void inverse() {
for (int i = 0, size = width * height; i < size; i++)
data[i] = (byte) (255 - data[i]);
}
public void mirrorHorizontally() {
byte[] newData = new byte[width * height];
for (int j = 0; j < height; j++)
for (int i = 0; i < width; i++)
newData[j * width + i] = data[j * width + width - i - 1];
data = newData;
}
public void applyLUT(CPLookUpTable lut) {
for (int i = 0, size = width * height; i < size; i++)
data[i] = (byte) lut.table[data[i] & 0xff];
}
}