public DataBlk getInternCompData(DataBlk blk, int c)
{
if (c < 0 || c >= this.nc)
{
throw new ArgumentOutOfRangeException("c");
}
var data = new int[blk.w * blk.h];
for (int y = blk.uly, k = 0; y < blk.uly + blk.h; ++y)
{
for (int x = blk.ulx, xy = blk.uly * this.w + blk.ulx; x < blk.ulx + blk.w; ++x, ++k, ++xy)
{
data[k] = this.comps[c][xy];
}
}
blk.offset = 0;
blk.scanw = blk.w;
blk.progressive = false;
blk.Data = data;
return blk;
}