combinePixels function
Pixel
combinePixels(
- List<
Pixel> pixels, { - PixelCombineMode combineMode = PixelCombineMode.LR,
- 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);
}