float src_rect_x2 = src_rect_x1 + source.getWidth();
float src_rect_y2 = src_rect_y1 + source.getHeight();
MultiPixelPackedSampleModel sourceSM =
(MultiPixelPackedSampleModel)source.getSampleModel();
DataBufferUShort sourceDB =
(DataBufferUShort)source.getDataBuffer();
int sourceTransX = source.getSampleModelTranslateX();
int sourceTransY = source.getSampleModelTranslateY();
int sourceDataBitOffset = sourceSM.getDataBitOffset();
int sourceScanlineStride = sourceSM.getScanlineStride();
MultiPixelPackedSampleModel destSM =
(MultiPixelPackedSampleModel)dest.getSampleModel();
DataBufferUShort destDB =
(DataBufferUShort)dest.getDataBuffer();
int destMinX = dest.getMinX();
int destMinY = dest.getMinY();
int destTransX = dest.getSampleModelTranslateX();
int destTransY = dest.getSampleModelTranslateY();
int destDataBitOffset = destSM.getDataBitOffset();
int destScanlineStride = destSM.getScanlineStride();
short[] sourceData = sourceDB.getData();
int sourceDBOffset = sourceDB.getOffset();
short[] destData = destDB.getData();
int destDBOffset = destDB.getOffset();
Point2D dst_pt = new Point2D.Float();
Point2D src_pt = new Point2D.Float();
int dst_min_x = destRect.x;