inputRaster = inputRaster.createChild(inputRaster.getMinX(),
inputRaster.getMinY(),
w, h, minX, minY, null);
else {
WritableRaster ras = Raster.createWritableRaster(destSM,
new Point(minX, minY));
byte[] data = ((DataBufferByte)ras.getDataBuffer()).getData();
for(int j = minY, y = sourceRegion.y, k = 0;
j < minY + h; j++, y += scaleY) {
for (int i = 0, x = sourceRegion.x;
i <w; i++, x +=scaleX) {
int v = inputRaster.getSample(x, y, 0);
data[k + (i >> 3)] |= v << (7 - (i & 7));
}
k += w + 7 >> 3;
}
inputRaster = ras;
}
}
// If the data are not formatted nominally then reformat.
if(!destSM.equals(inputRaster.getSampleModel())) {
WritableRaster raster =
Raster.createWritableRaster(destSM,
new Point(inputRaster.getMinX(),
inputRaster.getMinY()));
raster.setRect(inputRaster);
inputRaster = raster;
}