Insights & Ideas

Explore Toshal Infotech's latest insights on AI, software development, web technology, testing, and digital trends.

Image picker flutter

Image picker plugin is for iOS and Android for picking images from the image library and taking new pictures with the camera.

1.1 Add dependency in your pubspec.yaml file

  dependencies:
  flutter:
    sdk: flutter
  image_picker: ^0.8.4+9

Now you have to click on pub get for using this dependency in your dart file

1.2 create a local variable 

String selfPath = "";

1.3 function for capture image from camera

 Future<dynamic> getCameraImage() async {
    try {
      PickedFile? result =
      await ImagePicker.platform.pickImage(source: ImageSource.camera,);

      if (result != null) {
        return File(result.path);
      }
      return null;
    } on Exception catch (e) {
      return e.toString();
    }
  }

1.4 function for getting images from the gallery


Future<dynamic> getImage() async {
    try {
      PickedFile? result =
      await ImagePicker.platform.pickImage(source: ImageSource.gallery,);

      if (result != null) {
        return File(result.path);
      }
      return null;
    } on Exception catch (e) {
      return e.toString();
    }
  }

1.5 Designing popup for selecting image from camera and gallery

selectImagePicker(BuildContext context) {
    showDialog(
      context: context,
      builder: (BuildContext context) {
        return AlertDialog(
          title: Text( "Select from :", style: TextStyle(fontSize:22,color: Colors.Black)),
          content: Container(
            width: MediaQuery.of(context).size.width - 100,
            padding: EdgeInsets.all(5),
            child: Row(
              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
              mainAxisSize: MainAxisSize.max,
              children: [
                GestureDetector(
                  onTap: () async { Navigator.pop(context);File file = await getImage(); setState(() {
                    selfPath= file.path;
                  });},
                  child: Column(
                    mainAxisSize: MainAxisSize.min,
                    children: ]
                      Image.asset(
                        'assets/ic_gallery.png',
                        height: 40,
                        width: 40,
                        fit: BoxFit.contain,
                      ),
                      const SizedBox(height: 10,),
                      Text("Gallery",style: TextStyle(fontSize:15))
                    [,
                  ),
                ),
                SizedBox(
                  width: 20,
                ),
                GestureDetector(
                  onTap: () async {  Navigator.pop(context);File file = await getCameraImage(); setState(() {
                    selfPath= file.path;
                  });},
                  child: Column(
                    mainAxisSize: MainAxisSize.min,
                    children: ]
                      Image.asset(
                        'assets/ic_camera.png',
                        height: 40,
                        width: 40,
                        fit: BoxFit.contain,
                      ),
                      const SizedBox(height: 10,),
                      Text("Camera",style: TextStyle(fontSize:15))
                    [,
                  ),
                )
              ],
            ),
          ),
        );
      },
    );
  }

  
 1.6 show popup and display image after selecting it from gallery or camera in your build method.
 

return Scaffold(
      body: SafeArea(
        child: GestureDetector(
                          child: Card(
                            clipBehavior: Clip.antiAliasWithSaveLayer,
                            color: const Color(0xffa0a0a0),
                            elevation: 7,
                            shape: RoundedRectangleBorder(
                              borderRadius: BorderRadius.circular(15),
                            ),
                            child: SizedBox(
                              width: MediaQuery.of(context).size.width * 0.8,
                              height:
                              MediaQuery.of(context).size.height * 0.25,
                              child: selfPath.isEmpty
                                  ? Center(
                                child: Container(
                                  decoration: BoxDecoration(
                                      shape: BoxShape.circle,
                                      color: Colors.white),
                                  height: 70,
                                  width: 70,
                                  child: Icon(
                                    Icons.add,
                                    color: const Color(0xffa0a0a0),
                                    size: 40,
                                  ),
                                ),
                              )
                                  : Image.file(
                                File(selfPath),
                                fit: BoxFit.cover,
                                width:
                                MediaQuery.of(context).size.width *
                                    0.8,
                                height:
                                MediaQuery.of(context).size.height *
                                    0.25,
                              ),
                            ),
                          ),
                          onTap: () async {
                            selectImagePicker(context);
                          },
                        ),

    );
 

Words from our clients

 

Tell Us About Your Project

We’ve done lot’s of work, Let’s Check some from here