image_masking_flutter 0.0.2 copy "image_masking_flutter: ^0.0.2" to clipboard
image_masking_flutter: ^0.0.2 copied to clipboard

The Image Masking Flutter Plugin allows developers to create an interactive image reveal effect.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:image_masking_flutter/image_masking_widget.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Image Masking',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const HomePage(),
    );
  }
}

class HomePage extends StatefulWidget {
  const HomePage({super.key});

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  final GlobalKey<ImageMaskingWidgetState> _imageMaskingKey =
      GlobalKey<ImageMaskingWidgetState>();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(
        children: [
          mainImageView(context),
          topbarView(),
          eraserView(),
        ],
      ),
    );
  }

  Widget mainImageView(BuildContext context) {
    return ImageMaskingWidget(
      key: _imageMaskingKey,
      height: MediaQuery.of(context).size.height / 2,
      width: MediaQuery.of(context).size.width,
      margin: EdgeInsets.symmetric(
          vertical: MediaQuery.of(context).size.height / 4, horizontal: 15),
      decoration:
          BoxDecoration(border: Border.all(color: Colors.black, width: 2)),
      coloredImage: "assets/images/kid_color.jpeg",
      //Use colored image here
      unColoredImage:
          "assets/images/kid_uncolor.jpeg", //Use outlined image without color with same size & resolution according to above colored image
    );
  }

  Widget topbarView() {
    return Container(
      color: Colors.blue,
      width: double.infinity,
      height: 120,
      alignment: Alignment.bottomCenter,
      padding: const EdgeInsets.only(bottom: 20),
      child: const Text("Image Masking",
          style: TextStyle(
              fontWeight: FontWeight.w500, color: Colors.white, fontSize: 26)),
    );
  }

  Widget eraserView() {
    return Positioned(
        bottom: 0,
        left: 0,
        right: 0,
        child: GestureDetector(
          onTap: () {
            _imageMaskingKey.currentState?.resetView();
          },
          child: Container(
              margin: const EdgeInsets.only(bottom: 100),
              decoration: BoxDecoration(
                  shape: BoxShape.circle,
                  color: Colors.grey.shade200,
                  border: Border.all(color: Colors.black, width: 1)),
              padding: const EdgeInsets.all(15),
              child: const Icon(
                Icons.cleaning_services,
                size: 30,
              )),
        ));
  }
}
copied to clipboard
7
likes
150
points
33
downloads

Publisher

unverified uploader

Weekly Downloads

2024.09.13 - 2025.03.28

The Image Masking Flutter Plugin allows developers to create an interactive image reveal effect.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

cupertino_icons, flutter

More

Packages that depend on image_masking_flutter