if (subsamplingXOffset < 0 || subsamplingYOffset < 0) throw new IllegalArgumentException("subsampling offset < 0");  if (sourceRegion != null) { int num_rows = (sourceRegion.height - subsamplingYOffset + sourceYSubsampling - 1) / sourceYSubsampling;  int num_columns = (sourceRegion.width - subsamplingXOffset + sourceXSubsampling - 1) / sourceXSubsampling;  if (num_rows <= 0 || num_columns <= 0) throw new IllegalStateException("subsampling parameters would" + " produce zero pixel samples" + " in source region"); }
  public void setSourceSubsampling(int sourceXSubsampling, int sourceYSubsampling,				   int subsamplingXOffset, int subsamplingYOffset)  {    this.sourceXSubsampling = sourceXSubsampling;    this.sourceYSubsampling = sourceYSubsampling;    this.subsamplingXOffset = subsamplingXOffset;    this.subsamplingYOffset = subsamplingYOffset;  }