العودة إلى المطوّرين

< حزمة واجهات Flutter />

UTD Video Effects Kit

فلاتر تجميل فورية، وتدرّج ألوان LUT، ومؤثرات للوجه.

الإصدار 0.5.0على pub.dev
Android (minSdk 24)iOS
video_effects_kit.dart
import 'package:utd_video_effects_kit/utd_video_effects_kit.dart';

final fx = VideoEffectsProcessor.create();
final track = await LocalVideoTrack.createCameraTrack(
  CameraCaptureOptions(processor: fx),
);

await fx.setSmoothing(0.6);
await fx.setFilter('teal_orange', intensity: 0.8);
await fx.setBackgroundBlur(0.4);
await fx.setEyeColor('#3366CC', opacity: 0.6);
await fx.setLipstick('#CC2244');

// Or use the built-in UI:
VideoEffectsSheet.show(context, processor: fx);

46+

فلاتر LUT

9

إكسسوارات

6

إطلالات مكياج

GPU

فوري

< utd_video_effects_kit />

أبرز المزايا

مؤثرات فيديو وفلاتر تجميل فورية لتطبيقات Flutter القائمة على LiveKit. تعمل المؤثرات عبر TrackProcessor على خطوط معالجة GPU أصلية (أندرويد/iOS)، وتضمّ أكثر من 46 فلتر ألوان LUT، وتنعيم/تفتيح البشرة، وتمويه الخلفية، ومؤثرات للوجه مدعومة بـ MediaPipe (لون العين، المكياج، الإكسسوارات). تتضمّن واجهة VideoEffectsSheet مدمجة بتبويبات التجميل/الفلاتر/المكياج/الإكسسوارات.

أكثر من 46 فلتر ألوان LUT (مختارة + إطلالات داخلية)

مؤثرات تجميل: تنعيم البشرة (فصل الترددات)، تفتيح، تمويه الخلفية

مؤثرات للوجه عبر MediaPipe: لون العين، مكياج (أحمر شفاه/ظلال/خدود)، 9 إكسسوارات

معالجة لاحقة للألوان: توهّج/إشعاع (Orton)، حبيبات فيلمية، تظليل حوافّ

تنقيح البشرة: تفاصيل الملمس، الوضوح، تفتيح انتقائي

إعادة تشكيل الوجه: تشويه قائم على المعالم (تكبير العين، تنحيف الوجه، تضييق الأنف، …)

واجهة VideoEffectsSheet جاهزة (تبويبات التجميل/الفلاتر/المكياج/الإكسسوارات)

إطلالات مكياج مختارة وإعدادات مسبقة لدرجات البشرة

إدارة تكيّفية لميزانية الإطارات حسب فئات أداء الأجهزة

ربط TrackProcessor الخاص بـ LiveKit بـ LocalVideoTrack دون أي شيفرة وصل

< utd_video_effects_kit />

ابدأ الآن

1

التثبيت

pubspec.yaml
dependencies:
  utd_video_effects_kit: ^0.5.0
2

عرض على pub.dev

فلاتر تجميل فورية، وتدرّج ألوان LUT، ومؤثرات للوجه.

< utd_video_effects_kit />

مرجع API

Main processor

The single public entry point: a LiveKit TrackProcessor that applies GPU beauty/filter effects natively.

VideoEffectsProcessorclass
abstract class VideoEffectsProcessor extends TrackProcessor<VideoProcessorOptions>

LiveKit-compatible video processor that applies GPU beauty/filter effects natively and exposes the result via processedTrack. Has no per-frame process() hook; pixel work runs natively.

VideoEffectsProcessor.createconstructor
factory VideoEffectsProcessor.create({EffectsState initial = const EffectsState()})

Builds the default native-backed implementation. The only way to construct a processor.

المعاملات

  • initialEffectsStateالقيمة الافتراضية = const EffectsState()

    Initial effect settings the processor starts with.

القيمة المُرجَعة: VideoEffectsProcessorA native-backed processor instance.

stategetter
ValueListenable<EffectsState> get state

Live, read-only snapshot of current effect settings. Bind UI to this.

القيمة المُرجَعة: ValueListenable<EffectsState>Listenable of the current immutable EffectsState.

isSupportedgetter
bool get isSupported

Whether this device/platform can actually process pixels. False means processedTrack is a passthrough (original camera frames flow unmodified).

القيمة المُرجَعة: boolTrue if native pixel processing is available.

disposemethod
void dispose()

Final teardown: releases the effect-state listenable. Call when the live session ends. Distinct from LiveKit's per-capture destroy().

القيمة المُرجَعة: voidNothing.

Adaptive performance & telemetry

Frame-budget signals and on-device measurement/parity harness.

budgetExceededgetter
ValueListenable<bool> get budgetExceeded

True while the native pipeline sheds work to hold the frame budget (degrade level > 0). Emits only on change. Always false on unsupported platforms.

القيمة المُرجَعة: ValueListenable<bool>Listenable performance-mode flag.

degradeLevelgetter
ValueListenable<int> get degradeLevel

Current adaptive frame-budget degrade level: 0 (full quality) .. 4 (max shedding). 0 on unsupported platforms.

القيمة المُرجَعة: ValueListenable<int>Listenable degrade level 0..4.

deviceTiergetter
ValueListenable<int> get deviceTier

Static device performance tier classified natively at attach: 0 Budget, 1 Low, 2 Mid, 3 Flagship. 3 on unsupported platforms or before first attach.

القيمة المُرجَعة: ValueListenable<int>Listenable device tier 0..3.

perfStatsmethodasync
Future<EffectsPerfStats?> perfStats({bool reset = false})

Pulls a snapshot of native frame-budget telemetry (over-budget rate + frame-time distribution). Returns null on web/unsupported or with no native session.

المعاملات

  • resetboolالقيمة الافتراضية = false

    Clear counters after reading so the next call measures a fresh window.

القيمة المُرجَعة: Future<EffectsPerfStats?>Telemetry snapshot, or null if unavailable.

renderTestFramemethodasync
Future<EffectsTestFrame?> renderTestFrame(Uint8List rgba, {required int width, required int height})

Runs an RGBA8888 image through the native COLOR grade with current settings and returns the processed RGBA8888 (CPU-vs-GPU parity harness). Call with effects disabled. Returns null if unavailable.

المعاملات

  • rgbaUint8Listمطلوب

    RGBA8888 row-major input, width*height*4 bytes.

  • widthintمطلوب

    Input image width in pixels.

  • heightintمطلوب

    Input image height in pixels.

القيمة المُرجَعة: Future<EffectsTestFrame?>Graded output frame, or null if unavailable.

Beauty & color setters

Skin smoothing, whitening, LUT filters, and the color-post (glow/grain/vignette) tail.

setEnabledmethodasync
Future<void> setEnabled(bool enabled)

Master on/off switch. When off the native pipeline is a 1:1 passthrough.

المعاملات

  • enabledboolمطلوب

    Whether effects are applied.

القيمة المُرجَعة: Future<void>Completes when applied.

setSmoothingmethodasync
Future<void> setSmoothing(double amount)

Skin-smoothing strength, 0.0..1.0 (frequency-separation / bilateral).

المعاملات

  • amountdoubleمطلوب

    Smoothing strength, 0.0..1.0 (0 = off).

القيمة المُرجَعة: Future<void>Completes when applied.

setWhiteningmethodasync
Future<void> setWhitening(double amount)

Whitening / brightness strength, 0.0..1.0.

المعاملات

  • amountdoubleمطلوب

    Whitening strength, 0.0..1.0 (0 = off).

القيمة المُرجَعة: Future<void>Completes when applied.

setFiltermethodasync
Future<void> setFilter(String? lutAssetKey, {double intensity = 1.0})

Apply a LUT color filter by key (null clears it). See VideoEffectsFilters.

المعاملات

  • lutAssetKeyString?مطلوب

    Filter key (e.g. 'warm'), or null to clear.

  • intensitydoubleالقيمة الافتراضية = 1.0

    Blend amount, 0.0..1.0.

القيمة المُرجَعة: Future<void>Completes when applied.

setBackgroundBlurmethodasync
Future<void> setBackgroundBlur(double amount)

Background-blur strength, 0.0..1.0 (selfie segmentation + blur).

المعاملات

  • amountdoubleمطلوب

    Blur strength, 0.0..1.0 (0 = off).

القيمة المُرجَعة: Future<void>Completes when applied.

setGlowmethodasync
Future<void> setGlow(double amount)

Soft glow / bloom (Orton) strength, 0.0..1.0. The highest-impact beauty color post effect.

المعاملات

  • amountdoubleمطلوب

    Glow strength, 0.0..1.0 (0 = off).

القيمة المُرجَعة: Future<void>Completes when applied.

setGrainmethodasync
Future<void> setGrain(double amount)

Film-grain amount, 0.0..1.0 (animated per frame).

المعاملات

  • amountdoubleمطلوب

    Grain amount, 0.0..1.0 (0 = off).

القيمة المُرجَعة: Future<void>Completes when applied.

setVignettemethodasync
Future<void> setVignette(double amount)

Vignette strength, 0.0..1.0 (darkens frame corners).

المعاملات

  • amountdoubleمطلوب

    Vignette strength, 0.0..1.0 (0 = off).

القيمة المُرجَعة: Future<void>Completes when applied.

setTextureDetailmethodasync
Future<void> setTextureDetail(double amount)

Pore/texture retained by frequency-separation smoothing, 0.0..1.0 (0 = plastic, 1 = full texture). Only affects skin when smoothing > 0.

المعاملات

  • amountdoubleمطلوب

    Texture retention, 0.0..1.0.

القيمة المُرجَعة: Future<void>Completes when applied.

setClaritymethodasync
Future<void> setClarity(double amount)

Local-contrast clarity, signed -1.0..1.0. Positive = punchy/pop, negative = soft dreamy skin. 0 = off.

المعاملات

  • amountdoubleمطلوب

    Signed clarity, -1.0..1.0.

القيمة المُرجَعة: Future<void>Completes when applied.

Skin retouch & tone

Selective brightening (teeth/eye/under-eye) and skin-tone presets/shift.

setTeethWhiteningmethodasync
Future<void> setTeethWhitening(double amount)

Teeth-whitening strength, 0.0..1.0 (0 = off).

المعاملات

  • amountdoubleمطلوب

    Teeth-whitening strength, 0.0..1.0.

القيمة المُرجَعة: Future<void>Completes when applied.

setEyeBrighteningmethodasync
Future<void> setEyeBrightening(double amount)

Eye-white (sclera) brightening, 0.0..1.0 (0 = off).

المعاملات

  • amountdoubleمطلوب

    Eye-white brightening strength, 0.0..1.0.

القيمة المُرجَعة: Future<void>Completes when applied.

setUnderEyeBrighteningmethodasync
Future<void> setUnderEyeBrightening(double amount)

Under-eye (tear-trough) brightening, 0.0..1.0 (0 = off).

المعاملات

  • amountdoubleمطلوب

    Under-eye brightening strength, 0.0..1.0.

القيمة المُرجَعة: Future<void>Completes when applied.

setSkinColormethodasync
Future<void> setSkinColor(String? presetKey)

Apply a skin-tone preset by key (null clears it). See VideoEffectsSkinTones.

المعاملات

  • presetKeyString?مطلوب

    Skin-tone preset key (e.g. 'nuanbai'), or null to clear.

القيمة المُرجَعة: Future<void>Completes when applied.

setSkinToneShiftmethodasync
Future<void> setSkinToneShift(double amount)

Skin-tone shift, signed -1.0..1.0: warms (+) or cools (-) skin via hue rotation gated by the adaptive skin mask. 0 = off.

المعاملات

  • amountdoubleمطلوب

    Signed skin-tone shift, -1.0..1.0.

القيمة المُرجَعة: Future<void>Completes when applied.

setSegmentationSkinmethodasync
Future<void> setSegmentationSkin(bool enabled)

Use multiclass segmentation to refine the skin region so skin effects apply to actual skin. Loads a larger/slower model. Default off.

المعاملات

  • enabledboolمطلوب

    Whether segmentation-refined skin masking is on.

القيمة المُرجَعة: Future<void>Completes when applied.

Makeup, sculpt & reshape setters

Landmark-driven makeup recolor, dodge/burn sculpt, and liquify reshape.

setEyeColormethodasync
Future<void> setEyeColor(String? hex, {double opacity = 0.5})

Recolor the iris with hex (e.g. '#3366CC', null clears it).

المعاملات

  • hexString?مطلوب

    Iris color hex, or null to clear.

  • opacitydoubleالقيمة الافتراضية = 0.5

    Recolor strength, 0.0..1.0.

القيمة المُرجَعة: Future<void>Completes when applied.

setLipstickmethodasync
Future<void> setLipstick(String? hex, {double opacity = 0.6, String finish = 'satin', String style = 'full'})

Apply lipstick in hex (null clears it). finish: matte/satin/gloss. style: full/ombre/blurred.

المعاملات

  • hexString?مطلوب

    Lipstick color hex, or null to clear.

  • opacitydoubleالقيمة الافتراضية = 0.6

    Strength, 0.0..1.0.

  • finishStringالقيمة الافتراضية = 'satin'

    matte, satin, or gloss.

  • styleStringالقيمة الافتراضية = 'full'

    full, ombre, or blurred.

القيمة المُرجَعة: Future<void>Completes when applied.

setEyeshadowmethodasync
Future<void> setEyeshadow(String? hex, {double opacity = 0.45, String? color2, double shimmer = 0})

Apply eyeshadow in hex (null clears it). color2 gives a two-tone gradient; shimmer adds sparkle.

المعاملات

  • hexString?مطلوب

    Eyeshadow color hex, or null to clear.

  • opacitydoubleالقيمة الافتراضية = 0.45

    Strength, 0.0..1.0.

  • color2String?القيمة الافتراضية = null

    Second hex for a two-tone (darker lash-line) gradient.

  • shimmerdoubleالقيمة الافتراضية = 0

    Sparkle amount, 0.0..1.0.

القيمة المُرجَعة: Future<void>Completes when applied.

setBlushmethodasync
Future<void> setBlush(String? hex, {double opacity = 0.4})

Apply blush in hex (null clears it).

المعاملات

  • hexString?مطلوب

    Blush color hex, or null to clear.

  • opacitydoubleالقيمة الافتراضية = 0.4

    Strength, 0.0..1.0.

القيمة المُرجَعة: Future<void>Completes when applied.

setEyelinermethodasync
Future<void> setEyeliner(String? hex, {double opacity = 0.7, String style = 'classic'})

Apply eyeliner in hex (null clears it). style: classic or wing (adds an outer flick).

المعاملات

  • hexString?مطلوب

    Eyeliner color hex, or null to clear.

  • opacitydoubleالقيمة الافتراضية = 0.7

    Strength, 0.0..1.0.

  • styleStringالقيمة الافتراضية = 'classic'

    classic or wing.

القيمة المُرجَعة: Future<void>Completes when applied.

setMakeupLookmethodasync
Future<void> setMakeupLook(MakeupLook? look)

Apply a coordinated MakeupLook in one call (lipstick + finish, eyeshadow, blush, eye color). Null clears all makeup regions. See VideoEffectsMakeup.looks.

المعاملات

  • lookMakeupLook?مطلوب

    The look to apply, or null to clear all makeup.

القيمة المُرجَعة: Future<void>Completes when applied.

setContourmethodasync
Future<void> setContour(double amount)

Contour (cool-gray cheek/nose burn) strength, 0.0..1.0 (0 = off).

المعاملات

  • amountdoubleمطلوب

    Contour strength, 0.0..1.0.

القيمة المُرجَعة: Future<void>Completes when applied.

setHighlightmethodasync
Future<void> setHighlight(double amount)

Highlight (warm-white dodge on high points) strength, 0.0..1.0 (0 = off).

المعاملات

  • amountdoubleمطلوب

    Highlight strength, 0.0..1.0.

القيمة المُرجَعة: Future<void>Completes when applied.

setEyeEnlargemethodasync
Future<void> setEyeEnlarge(double amount)

Eye-enlarge reshape strength, 0.0..1.0 (0 = off).

المعاملات

  • amountdoubleمطلوب

    Eye-enlarge strength, 0.0..1.0.

القيمة المُرجَعة: Future<void>Completes when applied.

setFaceSlimmethodasync
Future<void> setFaceSlim(double amount)

Face-slim reshape strength, 0.0..1.0 (0 = off).

المعاملات

  • amountdoubleمطلوب

    Face-slim strength, 0.0..1.0.

القيمة المُرجَعة: Future<void>Completes when applied.

setNoseNarrowmethodasync
Future<void> setNoseNarrow(double amount)

Nose-narrow reshape strength, 0.0..1.0 (0 = off).

المعاملات

  • amountdoubleمطلوب

    Nose-narrow strength, 0.0..1.0.

القيمة المُرجَعة: Future<void>Completes when applied.

setLipPlumpmethodasync
Future<void> setLipPlump(double amount)

Lip-plump reshape strength, 0.0..1.0 (0 = off).

المعاملات

  • amountdoubleمطلوب

    Lip-plump strength, 0.0..1.0.

القيمة المُرجَعة: Future<void>Completes when applied.

setChinShortenmethodasync
Future<void> setChinShorten(double amount)

Chin-shorten reshape strength, 0.0..1.0 (0 = off).

المعاملات

  • amountdoubleمطلوب

    Chin-shorten strength, 0.0..1.0.

القيمة المُرجَعة: Future<void>Completes when applied.

Accessories setters

Toggle landmark-positioned PNG overlays. One toggle per accessory.

setGlassesmethodasync
Future<void> setGlasses(bool enabled)

Toggle the glasses accessory overlay.

المعاملات

  • enabledboolمطلوب

    Whether the glasses overlay is shown.

القيمة المُرجَعة: Future<void>Completes when applied.

setSunglassesmethodasync
Future<void> setSunglasses(bool enabled)

Toggle the sunglasses accessory overlay.

المعاملات

  • enabledboolمطلوب

    Whether the sunglasses overlay is shown.

القيمة المُرجَعة: Future<void>Completes when applied.

setCrownmethodasync
Future<void> setCrown(bool enabled)

Toggle the crown accessory overlay.

المعاملات

  • enabledboolمطلوب

    Whether the crown overlay is shown.

القيمة المُرجَعة: Future<void>Completes when applied.

setCatEarsmethodasync
Future<void> setCatEars(bool enabled)

Toggle the cat-ears accessory overlay.

المعاملات

  • enabledboolمطلوب

    Whether the cat-ears overlay is shown.

القيمة المُرجَعة: Future<void>Completes when applied.

setFlowerCrownmethodasync
Future<void> setFlowerCrown(bool enabled)

Toggle the flower-crown accessory overlay.

المعاملات

  • enabledboolمطلوب

    Whether the flower-crown overlay is shown.

القيمة المُرجَعة: Future<void>Completes when applied.

setPartyHatmethodasync
Future<void> setPartyHat(bool enabled)

Toggle the party-hat accessory overlay.

المعاملات

  • enabledboolمطلوب

    Whether the party-hat overlay is shown.

القيمة المُرجَعة: Future<void>Completes when applied.

setBunnyEarsmethodasync
Future<void> setBunnyEars(bool enabled)

Toggle the bunny-ears accessory overlay.

المعاملات

  • enabledboolمطلوب

    Whether the bunny-ears overlay is shown.

القيمة المُرجَعة: Future<void>Completes when applied.

setMustachemethodasync
Future<void> setMustache(bool enabled)

Toggle the mustache accessory overlay.

المعاملات

  • enabledboolمطلوب

    Whether the mustache overlay is shown.

القيمة المُرجَعة: Future<void>Completes when applied.

setHalomethodasync
Future<void> setHalo(bool enabled)

Toggle the halo accessory overlay.

المعاملات

  • enabledboolمطلوب

    Whether the halo overlay is shown.

القيمة المُرجَعة: Future<void>Completes when applied.

Built-in UI

Drop-in bottom sheet that drives a processor with Beauty/Filters/Makeup/Accessories tabs.

VideoEffectsSheetclass
class VideoEffectsSheet

Self-contained beauty & filters bottom sheet (Beauty / Filters / Makeup / Accessories tabs) that drives a VideoEffectsProcessor. Dark over-video styling; accent from theme primary; auto Arabic labels.

VideoEffectsSheet.showmethodasync
static Future<void> show(BuildContext context, {required VideoEffectsProcessor processor, double heightFactor = defaultHeightFactor})

Opens the beauty & filters sheet for processor. Turns the master switch on (idempotent), then shows a modal bottom sheet. Returns when dismissed.

المعاملات

  • contextBuildContextمطلوب

    Build context to show the modal in.

  • processorVideoEffectsProcessorمطلوب

    The processor the sheet controls.

  • heightFactordoubleالقيمة الافتراضية = defaultHeightFactor (0.25)

    Sheet height as a fraction of screen height.

القيمة المُرجَعة: Future<void>Completes when the sheet is dismissed.

defaultHeightFactorproperty
static const double defaultHeightFactor = 0.25

Default sheet height as a fraction of the screen height (1/4).

القيمة المُرجَعة: double0.25

Catalogs (filters, skin tones, accessories, makeup)

Pure-data catalogs of bundled LUT filters, skin-tone presets, accessories, and makeup shades/looks.

VideoEffectsFiltersclass
class VideoEffectsFilters

Catalog of bundled LUT color filters (45+ entries). Static-only (private constructor).

VideoEffectsFilters.allproperty
static const List<VideoEffectFilter> all

All bundled LUT filters, in display order (fresh, night, autumn, clean_girl, teal_orange, etc.).

القيمة المُرجَعة: List<VideoEffectFilter>Bundled filter catalog.

VideoEffectsFilters.assetFormethod
static String? assetFor(String? key)

The LUT asset path for a filter key, or null for an unknown/cleared key.

المعاملات

  • keyString?مطلوب

    Filter key to resolve.

القيمة المُرجَعة: String?Asset path or null.

VideoEffectsFilters.previewFormethod
static String previewFor(String? key)

Preview thumbnail asset path for a filter key (portrait with filter applied). Null gives the unfiltered 'none' preview.

المعاملات

  • keyString?مطلوب

    Filter key, or null for the 'none' preview.

القيمة المُرجَعة: StringPreview asset path.

VideoEffectsFilters.skinPreviewFormethod
static String skinPreviewFor(String? key)

Preview thumbnail asset path for a skin-tone preset (same portrait, skin LUT grade).

المعاملات

  • keyString?مطلوب

    Skin-tone key, or null for the 'none' preview.

القيمة المُرجَعة: StringPreview asset path.

VideoEffectFilterclass
class VideoEffectFilter { const VideoEffectFilter(this.key, this.label, this.asset); }

A bundled LUT color filter: stable key, human label, and 512x512 LUT PNG asset path.

المعاملات

  • keyStringمطلوب

    Stable key passed to setFilter, e.g. 'fresh'.

  • labelStringمطلوب

    Human-readable label, e.g. 'Fresh'.

  • assetStringمطلوب

    Packaged asset path of the LUT PNG.

VideoEffectsSkinTonesclass
class VideoEffectsSkinTones

Catalog of bundled skin-tone presets (Warm/Cool/Pink/Wheat/Tan). Static-only. Has all (List<VideoEffectSkinTone>) and byKey(String?).

VideoEffectsSkinTones.byKeymethod
static VideoEffectSkinTone? byKey(String? key)

Look up a skin-tone preset by key, or null for unknown/null.

المعاملات

  • keyString?مطلوب

    Skin-tone preset key.

القيمة المُرجَعة: VideoEffectSkinTone?Preset or null.

VideoEffectsAccessoriesclass
class VideoEffectsAccessories

Catalog of bundled PNG accessories (glasses, crown, catEars, sunglasses, flowerCrown, partyHat, bunnyEars, mustache, halo). Static-only.

VideoEffectsAccessories.allproperty
static const List<VideoEffectAccessory> all

All bundled accessories, each with a key matching the EffectsState toggle.

القيمة المُرجَعة: List<VideoEffectAccessory>Accessory catalog.

VideoEffectsAccessories.assetFormethod
static String? assetFor(String? key)

The PNG asset path for an accessory key, or null for an unknown key.

المعاملات

  • keyString?مطلوب

    Accessory key to resolve.

القيمة المُرجَعة: String?Asset path or null.

VideoEffectsMakeupclass
class VideoEffectsMakeup

Curated makeup shades + full looks. Static-only. Exposes lipstick, eyeshadow, blush, eyeColor (List<MakeupShade>) and looks (List<MakeupLook>).

VideoEffectsMakeup.looksproperty
static const List<MakeupLook> looks

Coordinated full looks (lip + eyeshadow + blush [+ eye color]): natural, glam, soft_rose, bold_berry, sunkissed, smoky_night.

القيمة المُرجَعة: List<MakeupLook>Curated full looks.

VideoEffectsMakeup.lookByKeymethod
static MakeupLook? lookByKey(String? key)

Look up a coordinated MakeupLook by key, or null for unknown/null.

المعاملات

  • keyString?مطلوب

    Look key.

القيمة المُرجَعة: MakeupLook?Look or null.

Models & data types

Immutable state snapshot, catalog item types, and telemetry/parity result types.

EffectsStateclass
class EffectsState { const EffectsState({bool enabled = false, double smoothing = 0, ... bool halo = false}); }

Immutable snapshot of active video-effect settings (~50 fields: enabled, smoothing, whitening, filterKey/filterIntensity, makeup hex+opacity, sculpt/reshape scalars, accessory bools). All intensities normalized 0.0..1.0.

المعاملات

  • enabledboolالقيمة الافتراضية = false

    Master switch.

  • smoothingdoubleالقيمة الافتراضية = 0

    Skin-smoothing strength.

  • filterKeyString?القيمة الافتراضية = null

    Active LUT filter key, or null.

  • filterIntensitydoubleالقيمة الافتراضية = 1.0

    Blend amount for filterKey.

  • Plus whitening, glow, grain, vignette, clarity, makeup hex/opacity fields, reshape/sculpt scalars, and accessory bools.

copyWithmethod
EffectsState copyWith({bool? enabled, double? smoothing, Object? filterKey = _unset, ...})

Returns a copy with the given fields changed. Nullable fields use an _unset sentinel so passing null clears (vs leaving unchanged).

المعاملات

  • Any subset of EffectsState fields to override.

القيمة المُرجَعة: EffectsStateA new modified state.

toMapmethod
Map<String, dynamic> toMap()

Serialized form sent to the native pipeline over the method channel.

القيمة المُرجَعة: Map<String, dynamic>All effect fields as a map.

VideoEffectSkinToneclass
const VideoEffectSkinTone(this.key, this.label, this.skinAsset, this.bgAsset)

A skin-tone preset (dual-LUT grade): a skin LUT over skin regions plus a background LUT elsewhere.

المعاملات

  • keyStringمطلوب

    Stable preset key, e.g. 'nuanbai'.

  • labelStringمطلوب

    Human label, e.g. 'Warm'.

  • skinAssetStringمطلوب

    Skin-region LUT asset path.

  • bgAssetStringمطلوب

    Background LUT asset path.

VideoEffectAccessoryclass
const VideoEffectAccessory(this.key, this.label, this.asset)

A landmark-positioned PNG accessory overlay.

المعاملات

  • keyStringمطلوب

    Stable key matching the EffectsState toggle, e.g. 'glasses'.

  • labelStringمطلوب

    Human-readable label.

  • assetStringمطلوب

    Packaged transparent PNG asset path.

MakeupShadeclass
const MakeupShade(this.key, this.label, this.hex, this.opacity)

A curated makeup shade: a hex color plus recommended opacity for one region. Feed hex+opacity into the matching setter.

المعاملات

  • keyStringمطلوب

    Stable key, e.g. 'classic_red'.

  • labelStringمطلوب

    Human label, e.g. 'Classic Red'.

  • hexStringمطلوب

    #RRGGBB color.

  • opacitydoubleمطلوب

    Recommended strength, 0.0..1.0.

MakeupLookclass
const MakeupLook(this.key, this.label, {String? lipstick, double lipstickOpacity = 0.6, String lipFinish = 'satin', String? eyeshadow, ...})

A full makeup look bundling coordinated shades across regions. Apply with setMakeupLook. Has a preview getter for the thumbnail asset path.

المعاملات

  • keyStringمطلوب

    Stable look key.

  • labelStringمطلوب

    Human label.

  • lipstickString?القيمة الافتراضية = null

    Lipstick hex.

  • lipFinishStringالقيمة الافتراضية = 'satin'

    matte, satin, or gloss.

  • eyeshadowString?القيمة الافتراضية = null

    Eyeshadow hex (plus blush, eyeColor, and per-region opacities).

EffectsPerfStatsclass
class EffectsPerfStats { const EffectsPerfStats({required int frames, ... required double frameMs}); }

Immutable snapshot of native frame-budget telemetry: frame counts, over-budget/over-frame counts, raise/lower events, per-level frames, mean/p50/p95/p99/max ms, histogram bins, device tier, and budget/frame thresholds.

المعاملات

  • framesintمطلوب

    Total frames timed since last reset.

  • overBudgetintمطلوب

    Frames slower than budgetMs.

  • Plus overFrame, raiseEvents, lowerEvents, levelFrames, meanMs, maxMs, p50/p95/p99Ms, binMs, bins, tier, budgetMs, frameMs.

overBudgetRategetter
double get overBudgetRate

Fraction of frames slower than budgetMs (0.0..1.0). The primary perf signal.

القيمة المُرجَعة: doubleOver-budget fraction.

overFrameRategetter
double get overFrameRate

Fraction of frames slower than frameMs — i.e. frames that actually dropped.

القيمة المُرجَعة: doubleDropped-frame fraction.

EffectsPerfStats.fromMapmethod
static EffectsPerfStats? fromMap(Map<String, dynamic>? m)

Builds a snapshot from the native channel map; null for a null/empty map.

المعاملات

  • mMap<String, dynamic>?مطلوب

    Native telemetry map.

القيمة المُرجَعة: EffectsPerfStats?Snapshot or null.

EffectsTestFrameclass
const EffectsTestFrame({required Uint8List rgba, required int width, required int height})

Result of renderTestFrame: an RGBA8888 image produced by running a known input through the native color grade with current settings.

المعاملات

  • rgbaUint8Listمطلوب

    Graded pixels, RGBA8888 row-major, alpha opaque.

  • widthintمطلوب

    Image width in pixels.

  • heightintمطلوب

    Image height in pixels.

FrameDiffclass
class FrameDiff { const FrameDiff({required int maxDelta, required double meanDelta, required int pixels, required int diffPixels, required int threshold}); }

A per-channel difference summary between two RGBA8888 buffers (pure Dart, offline-testable). Has diffFraction getter and a static compare().

المعاملات

  • maxDeltaintمطلوب

    Largest absolute per-channel delta (0..255).

  • meanDeltadoubleمطلوب

    Mean absolute per-channel delta over RGB.

  • pixelsintمطلوب

    Total pixels compared.

  • diffPixelsintمطلوب

    Pixels differing by more than threshold.

  • thresholdintمطلوب

    Per-channel delta counted as different.

FrameDiff.comparemethod
static FrameDiff compare(Uint8List a, Uint8List b, {int threshold = 2})

Compares two RGBA8888 buffers on RGB channels (alpha ignored). Returns a zeroed diff when sizes mismatch or are empty.

المعاملات

  • aUint8Listمطلوب

    First RGBA8888 buffer.

  • bUint8Listمطلوب

    Second RGBA8888 buffer.

  • thresholdintالقيمة الافتراضية = 2

    Per-channel delta above which a pixel counts as different.

القيمة المُرجَعة: FrameDiffThe difference summary.

جاهز تبني مع UTD؟

أنشئ حسابك، اشحن محفظتك الأم، وشغّل الخدمات التي تحتاجها.