combinePixels function

Pixel combinePixels(
  1. List<Pixel> pixels, {
  2. PixelCombineMode combineMode = PixelCombineMode.LR,
  3. Offset? offset,
})

Implementation

Pixel combinePixels(List<Pixel> pixels, {PixelCombineMode combineMode = PixelCombineMode.LR, Offset? offset}){
  if(combineMode == PixelCombineMode.RL || combineMode == PixelCombineMode.BT){
    pixels = pixels.reversed.toList();
  }
  var data = pixels.fold<List<String>>([], (fold, pixel){
      if(pixel.isEmpty){
        return fold;
      }else
      if(fold.isEmpty){
        return fold..addAll(pixel.data);
      }else{
        if(combineMode == PixelCombineMode.LR || combineMode == PixelCombineMode.RL){
          //// 各行相加
          return fold.indexed.map<String>((indexed)=>indexed.$2 + pixel.data[indexed.$1]).toList();
        } else
        if(combineMode == PixelCombineMode.TB || combineMode == PixelCombineMode.BT){
          //// 直接加列数据
          return fold ..addAll(pixel.data);
        } else {
          //// 暂未实现
          return fold;
        }
      }
    });
  if(data.isEmpty) return Pixel.empty();
  var width = data.fold<int>(0, (width, line)=>line.length > width ? line.length : width);
  return Pixel(size: (width: width, height: data.length), data: data);
}