+ for i in 0..self.ncomps { offs[i] += ostride[i]; }
+ }
+ } else {
+ let mut steps: [usize; MAX_CHROMATONS] = [0; MAX_CHROMATONS];
+ for i in 0..self.ncomps {
+ steps[i] = buf.get_info().get_format().get_chromaton(i).unwrap().next_elem as usize;
+ }
+
+ for src in sdata.chunks(istride).take(h) {
+ let mut x = offs;
+ for piece in src.chunks(step) {
+ for i in 0..self.ncomps {
+ let mut co = soff[i];
+ while co < step {
+ dst[x[i]] = piece[co];
+ x[i] += 1;
+ co += steps[i];
+ }
+ }
+ }
+ for i in 0..self.ncomps { offs[i] += ostride[i]; }