12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import 'dart:typed_data';
- import 'base.dart';
- /// Vid亮度处理器
- class VidBrightnessProcessor extends VidFrameProcessor {
- VidBrightnessProcessor(this.brightness) {
- _setActualBrightness();
- }
- /// 亮度 [-255~255]
- final int brightness;
- late final int _actualBrightness;
- void _setActualBrightness() {
- if (brightness < -255) {
- _actualBrightness = -255;
- } else if (brightness > 255) {
- _actualBrightness = 255;
- } else {
- _actualBrightness = brightness;
- }
- }
- @override
- Uint8List process(Uint8List bytes, int position) {
- final i = position;
- final _brightness = _actualBrightness;
- int b = bytes[i];
- int g = bytes[i + 1];
- int r = bytes[i + 2];
- b += _brightness;
- g += _brightness;
- r += _brightness;
- if (b < 0) b = 0;
- if (b > 255) b = 255;
- if (g < 0) g = 0;
- if (g > 255) g = 255;
- if (r < 0) r = 0;
- if (r > 255) r = 255;
- bytes[i] = b;
- bytes[i + 1] = g;
- bytes[i + 2] = r;
- return bytes;
- }
- @override
- String toString() => 'VidBrightnessProcessor: $brightness';
- }
|