/* 218 */ int srcX = source.getMinX();
/* 219 */ int srcY = source.getMinY();
/* */
/* 222 */ RasterFormatTag[] formatTags = getFormatTags();
/* */
/* 224 */ RasterAccessor srcAccessor = new RasterAccessor(source, new Rectangle(srcX, srcY, srcWidth, srcHeight), formatTags[0], getSourceImage(0).getColorModel());
/* */
/* 230 */ RasterAccessor dstAccessor = new RasterAccessor(dest, destRect, formatTags[1], getColorModel());
/* */
/* 235 */ int srcDataType = srcAccessor.getDataType();
/* 236 */ int dstDataType = dstAccessor.getDataType();
/* */
/* 239 */ int srcPixelStride = srcAccessor.getPixelStride();
/* 240 */ int srcScanlineStride = srcAccessor.getScanlineStride();
/* 241 */ int dstPixelStride = dstAccessor.getPixelStride();
/* 242 */ int dstScanlineStride = dstAccessor.getScanlineStride();
/* */
/* 245 */ int numBands = this.sampleModel.getNumBands();
/* 246 */ for (int band = 0; band < numBands; band++)
/* */ {
/* 248 */ Object srcData = srcAccessor.getDataArray(band);
/* 249 */ Object dstData = dstAccessor.getDataArray(band);
/* */
/* 251 */ if (destRect.width > 1)
/* */ {
/* 253 */ this.fct.setLength(getWidth());
/* */
/* 256 */ int srcOffset = srcAccessor.getBandOffset(band);
/* 257 */ int dstOffset = dstAccessor.getBandOffset(band);
/* */
/* 260 */ for (int row = 0; row < srcHeight; row++)
/* */ {
/* 262 */ this.fct.setData(srcDataType, srcData, srcOffset, srcPixelStride, srcWidth);
/* */
/* 267 */ this.fct.transform();
/* */
/* 270 */ this.fct.getData(dstDataType, dstData, dstOffset, dstPixelStride);
/* */
/* 274 */ srcOffset += srcScanlineStride;
/* 275 */ dstOffset += dstScanlineStride;
/* */ }
/* */ }
/* */
/* 279 */ if (destRect.width == 1)
/* */ {
/* 281 */ int srcOffset = srcAccessor.getBandOffset(band);
/* 282 */ int dstOffset = dstAccessor.getBandOffset(band);
/* */
/* 285 */ this.fct.setData(srcDataType, srcData, srcOffset, srcScanlineStride, srcHeight);
/* */
/* 290 */ this.fct.transform();
/* */
/* 293 */ this.fct.getData(dstDataType, dstData, dstOffset, dstScanlineStride);
/* */ }
/* 295 */ else if (destRect.height > 1)
/* */ {
/* 297 */ this.fct.setLength(getHeight());
/* */
/* 300 */ int dstOffset = dstAccessor.getBandOffset(band);
/* */
/* 303 */ for (int col = 0; col < destRect.width; col++)
/* */ {
/* 305 */ this.fct.setData(dstDataType, dstData, dstOffset, dstScanlineStride, destRect.height);
/* */
/* 310 */ this.fct.transform();
/* */
/* 313 */ this.fct.getData(dstDataType, dstData, dstOffset, dstScanlineStride);
/* */
/* 317 */ dstOffset += dstPixelStride;
/* */ }
/* */ }
/* */ }
/* */
/* 322 */ if (dstAccessor.needsClamping()) {
/* 323 */ dstAccessor.clampDataArrays();
/* */ }
/* */
/* 327 */ dstAccessor.copyDataToRaster();
/* */ }