CINXE.COM
image_picker | Flutter package
<!DOCTYPE html> <html lang="en-us"><head><script src="https://www.googletagmanager.com/gtm.js?id=GTM-MX6DBN9" async="async"></script><script src="/static/hash-o6oemknr/js/gtm.js" async="async"></script><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="twitter:card" content="summary"/><meta name="twitter:site" content="@dart_lang"/><meta name="twitter:description" content="Flutter plugin for selecting images from the Android and iOS image library, and taking new pictures with the camera."/><meta name="twitter:image" content="https://pub.dev/static/hash-o6oemknr/img/pub-dev-icon-cover-image.png"/><meta property="og:type" content="website"/><meta property="og:site_name" content="Dart packages"/><meta property="og:title" content="image_picker | Flutter package"/><meta property="og:description" content="Flutter plugin for selecting images from the Android and iOS image library, and taking new pictures with the camera."/><meta property="og:image" content="https://pub.dev/static/hash-o6oemknr/img/pub-dev-icon-cover-image.png"/><meta property="og:url" content="https://pub.dev/packages/image_picker"/><title>image_picker | Flutter package</title><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Google+Sans:wght@400;500;700&family=Google+Sans+Display:wght@400&family=Google+Sans+Text:wght@400;500;700&family=Google+Sans+Mono:wght@400;700&display=swap"/><link rel="shortcut icon" href="/static/hash-o6oemknr/img/flutter-logo-32x32.png"/><link rel="stylesheet" href="https://www.gstatic.com/glue/v25_0/ccb.min.css"/><link rel="search" type="application/opensearchdescription+xml" title="Dart packages" href="/osd.xml"/><link rel="canonical" href="https://pub.dev/packages/image_picker"/><meta name="description" content="Flutter plugin for selecting images from the Android and iOS image library, and taking new pictures with the camera."/><link rel="alternate" type="application/atom+xml" title="Updated Packages Feed for Pub" href="/feed.atom"/><link rel="stylesheet" type="text/css" href="/static/hash-o6oemknr/material/bundle/styles.css"/><link rel="stylesheet" type="text/css" href="/static/hash-o6oemknr/css/style.css"/><script src="/static/hash-o6oemknr/material/bundle/script.min.js" defer="defer"></script><script src="/static/hash-o6oemknr/js/script.dart.js" defer="defer"></script><script src="https://www.gstatic.com/brandstudio/kato/cookie_choice_component/cookie_consent_bar.v3.js" defer="defer" data-autoload-cookie-consent-bar="true"></script><meta name="pub-page-data" content="eyJwa2dEYXRhIjp7InBhY2thZ2UiOiJpbWFnZV9waWNrZXIiLCJ2ZXJzaW9uIjoiMS4xLjIiLCJsaWtlcyI6NzEzMiwicHVibGlzaGVySWQiOiJmbHV0dGVyLmRldiIsImlzRGlzY29udGludWVkIjpmYWxzZSwiaXNMYXRlc3QiOnRydWV9LCJzZXNzaW9uQXdhcmUiOmZhbHNlfQ=="/><link rel="preload" href="/static/hash-o6oemknr/highlight/highlight-with-init.js" as="script"/></head><body class="light-theme"><script src="/static/hash-o6oemknr/js/dark-init.js"></script><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MX6DBN9" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><div class="site-header"><button class="hamburger" aria-label="menu toggle"></button><a class="logo" href="/"><img class="site-logo" src="/static/hash-o6oemknr/img/pub-dev-logo.svg" alt="" width="140" height="30" role="presentation"/></a><div class="site-header-space"></div><div class="site-header-mask"></div><div class="site-header-search"><form action="/packages" method="GET"><input class="site-header-search-input" name="q" placeholder="New search..." autocomplete="on" title="Search"/></form></div><nav class="site-header-nav scroll-container"><div class="nav-login-container"><button id="-account-login" class="nav-main-button link">Sign in</button></div><div class="nav-container nav-help-container hoverable"><button class="nav-main-button">Help</button><div class="nav-hover-popup"><div class="nav-table-columns"><div class="nav-table-column"><h3>Pub.dev</h3><a class="nav-link" href="/help/search" rel="noopener" target="_blank">Searching for packages</a><a class="nav-link" href="/help/scoring" rel="noopener" target="_blank">Package scoring and pub points</a></div><div class="nav-table-column"><h3>Flutter</h3><a class="nav-link" href="https://flutter.dev/using-packages/" rel="noopener" target="_blank">Using packages</a><a class="nav-link" href="https://flutter.dev/developing-packages/" rel="noopener" target="_blank">Developing packages and plugins</a><a class="nav-link" href="https://dart.dev/tools/pub/publishing" rel="noopener" target="_blank">Publishing a package</a></div><div class="nav-table-column"><h3>Dart</h3><a class="nav-link" href="https://dart.dev/guides/packages" rel="noopener" target="_blank">Using packages</a><a class="nav-link" href="https://dart.dev/tools/pub/publishing" rel="noopener" target="_blank">Publishing a package</a></div></div></div></div><div class="nav-container nav-help-container-mobile foldable"><h3 class="foldable-button">Pub.dev <img class="foldable-icon" src="/static/hash-o6oemknr/img/nav-mobile-foldable-icon.svg" alt="toggle folding of the section" width="13" height="6"/></h3><div class="foldable-content"><a class="nav-link" href="/help/search" rel="noopener" target="_blank">Searching for packages</a><a class="nav-link" href="/help/scoring" rel="noopener" target="_blank">Package scoring and pub points</a></div></div><div class="nav-container nav-help-container-mobile foldable"><h3 class="foldable-button">Flutter <img class="foldable-icon" src="/static/hash-o6oemknr/img/nav-mobile-foldable-icon.svg" alt="toggle folding of the section" width="13" height="6"/></h3><div class="foldable-content"><a class="nav-link" href="https://flutter.dev/using-packages/" rel="noopener" target="_blank">Using packages</a><a class="nav-link" href="https://flutter.dev/developing-packages/" rel="noopener" target="_blank">Developing packages and plugins</a><a class="nav-link" href="https://dart.dev/tools/pub/publishing" rel="noopener" target="_blank">Publishing a package</a></div></div><div class="nav-container nav-help-container-mobile foldable"><h3 class="foldable-button">Dart <img class="foldable-icon" src="/static/hash-o6oemknr/img/nav-mobile-foldable-icon.svg" alt="toggle folding of the section" width="13" height="6"/></h3><div class="foldable-content"><a class="nav-link" href="https://dart.dev/guides/packages" rel="noopener" target="_blank">Using packages</a><a class="nav-link" href="https://dart.dev/tools/pub/publishing" rel="noopener" target="_blank">Publishing a package</a></div></div></nav></div><div id="banner-container"></div><main class="container"><div class="detail-wrapper -active -has-info-box"><div class="detail-header -is-loose"><div class="detail-container"><div class="detail-header-outer-block"><div class="detail-header-content-block"><h1 class="title">image_picker 1.1.2 <span class="pkg-page-title-copy"><img class="pkg-page-title-copy-icon filter-invert-on-dark" src="/static/hash-o6oemknr/img/content-copy-icon.svg" alt="copy "image_picker: ^1.1.2" to clipboard" width="18" height="18" title="Copy "image_picker: ^1.1.2" to clipboard" data-copy-content="image_picker: ^1.1.2" data-ga-click-event="copy-package-version"/><div class="pkg-page-title-copy-feedback"><span class="code">image_picker: ^1.1.2</span> copied to clipboard</div></span></h1><div class="metadata">Published <span><a class="-x-ago" href="" title="May 31, 2024" aria-label="5 months ago" aria-role="button" role="button" data-timestamp="1717168834803">5 months ago</a></span> • <a class="-pub-publisher" href="/publishers/flutter.dev"><img class="-pub-publisher-shield filter-invert-on-dark" src="/static/hash-o6oemknr/img/material-icon-verified.svg" alt="verified publisher" width="14" height="14" title="Published by a pub.dev verified publisher"/>flutter.dev</a><span class="package-badge" title="Package is compatible with Dart 3.">Dart 3 compatible</span></div><div class="detail-tags-and-like"><div class="detail-tags"><div class="-pub-tag-badge"><span class="tag-badge-main">SDK</span><a class="tag-badge-sub" href="/packages?q=sdk%3Aflutter" rel="nofollow" title="Packages compatible with Flutter SDK">Flutter</a></div><div class="-pub-tag-badge"><span class="tag-badge-main">Platform</span><a class="tag-badge-sub" href="/packages?q=platform%3Aandroid" rel="nofollow" title="Packages compatible with Android platform">Android</a><a class="tag-badge-sub" href="/packages?q=platform%3Aios" rel="nofollow" title="Packages compatible with iOS platform">iOS</a><a class="tag-badge-sub" href="/packages?q=platform%3Alinux" rel="nofollow" title="Packages compatible with Linux platform">Linux</a><a class="tag-badge-sub" href="/packages?q=platform%3Amacos" rel="nofollow" title="Packages compatible with macOS platform">macOS</a><a class="tag-badge-sub" href="/packages?q=platform%3Aweb" rel="nofollow" title="Packages compatible with Web platform">web</a><a class="tag-badge-sub" href="/packages?q=platform%3Awindows" rel="nofollow" title="Packages compatible with Windows platform">Windows</a></div></div><div class="detail-like"><button id="-pub-like-icon-button" class="mdc-icon-button" data-ga-click-event="toggle-like" aria-pressed="false" title="Like this package"><img class="mdc-icon-button__icon" src="/static/hash-o6oemknr/img/like-inactive.svg" alt="liked status: inactive" width="18" height="18"/><img class="mdc-icon-button__icon mdc-icon-button__icon--on" src="/static/hash-o6oemknr/img/like-active.svg" alt="liked status: active" width="18" height="18"/></button><span class="likes-count"><span id="likes-count">7.1k</span></span></div></div></div></div></div></div><div class="detail-container"><div class="detail-lead"><div class="detail-metadata-toggle"><div class="detail-metadata-toggle-icon">→</div><h3 class="detail-lead-title">Metadata</h3></div><p class="detail-lead-text">Flutter plugin for selecting images from the Android and iOS image library, and taking new pictures with the camera.</p><p class="detail-lead-more"><a class="detail-metadata-toggle">More...</a></p></div></div><div class="detail-body"><div class="detail-tabs"><div class="detail-tabs-wide-header"><div class="detail-container"><ul class="detail-tabs-header"><li class="detail-tab tab-button detail-tab-readme-title -active">Readme</li><li class="detail-tab tab-link detail-tab-changelog-title"><a href="/packages/image_picker/changelog" role="button">Changelog</a></li><li class="detail-tab tab-link detail-tab-example-title"><a href="/packages/image_picker/example" role="button">Example</a></li><li class="detail-tab tab-link detail-tab-installing-title"><a href="/packages/image_picker/install" role="button">Installing</a></li><li class="detail-tab tab-link detail-tab-versions-title"><a href="/packages/image_picker/versions" role="button">Versions</a></li><li class="detail-tab tab-link detail-tab-analysis-title"><a href="/packages/image_picker/score" role="button">Scores</a></li></ul></div></div><div class="detail-container detail-body-main"><div class="detail-tabs-content"><section class="tab-content detail-tab-readme-content -active markdown-body"><h1 class="hash-header" id="image-picker-plugin-for-flutter">Image Picker plugin for Flutter <a href="#image-picker-plugin-for-flutter" class="hash-link">#</a></h1> <!--?code-excerpt path-base="example/lib"?--> <p><a href="https://pub.dev/packages/image_picker"><img src="https://img.shields.io/pub/v/image_picker.svg" alt="pub package"></a></p> <p>A Flutter plugin for iOS and Android for picking images from the image library, and taking new pictures with the camera.</p> <table> <thead> <tr> <th></th> <th>Android</th> <th>iOS</th> <th>Linux</th> <th>macOS</th> <th>Web</th> <th>Windows</th> </tr> </thead> <tbody> <tr> <td><strong>Support</strong></td> <td>SDK 21+</td> <td>iOS 12+</td> <td>Any</td> <td>10.14+</td> <td><a href="https://pub.dev/packages/image_picker_for_web#limitations-on-the-web-platform">See <code>image_picker_for_web</code></a></td> <td>Windows 10+</td> </tr> </tbody> </table> <h2 class="hash-header" id="installation">Installation <a href="#installation" class="hash-link">#</a></h2> <p>First, add <code>image_picker</code> as a <a href="https://flutter.dev/docs/development/platform-integration/platform-channels">dependency in your pubspec.yaml file</a>.</p> <h3 class="hash-header" id="ios">iOS <a href="#ios" class="hash-link">#</a></h3> <p>Starting with version <strong>0.8.1</strong> the iOS implementation uses PHPicker to pick (multiple) images on iOS 14 or higher. As a result of implementing PHPicker it becomes impossible to pick HEIC images on the iOS simulator in iOS 14+. This is a known issue. Please test this on a real device, or test with non-HEIC images until Apple solves this issue. <a href="https://www.google.com/search?q=63426347+apple&sxsrf=ALeKk01YnTMid5S0PYvhL8GbgXJ40ZS%5B%E2%80%A6%5Dt=gws-wiz&ved=0ahUKEwjKh8XH_5HwAhWL_rsIHUmHDN8Q4dUDCA8&uact=5" rel="ugc">63426347 - Apple known issue</a></p> <p>Add the following keys to your <em>Info.plist</em> file, located in <code><project root>/ios/Runner/Info.plist</code>:</p> <ul> <li><code>NSPhotoLibraryUsageDescription</code> - describe why your app needs permission for the photo library. This is called <em>Privacy - Photo Library Usage Description</em> in the visual editor. <ul> <li>This permission will not be requested if you always pass <code>false</code> for <code>requestFullMetadata</code>, but App Store policy requires including the plist entry.</li> </ul> </li> <li><code>NSCameraUsageDescription</code> - describe why your app needs access to the camera. This is called <em>Privacy - Camera Usage Description</em> in the visual editor.</li> <li><code>NSMicrophoneUsageDescription</code> - describe why your app needs access to the microphone, if you intend to record videos. This is called <em>Privacy - Microphone Usage Description</em> in the visual editor.</li> </ul> <h3 class="hash-header" id="android">Android <a href="#android" class="hash-link">#</a></h3> <p>Starting with version <strong>0.8.1</strong> the Android implementation support to pick (multiple) images on Android 4.3 or higher.</p> <p>No configuration required - the plugin should work out of the box. It is however highly recommended to prepare for Android killing the application when low on memory. How to prepare for this is discussed in the <a href="#handling-mainactivity-destruction-on-android">Handling MainActivity destruction on Android</a> section.</p> <p>It is no longer required to add <code>android:requestLegacyExternalStorage="true"</code> as an attribute to the <code><application></code> tag in AndroidManifest.xml, as <code>image_picker</code> has been updated to make use of scoped storage.</p> <h4 id="handling-mainactivity-destruction">Handling MainActivity destruction</h4> <p>When under high memory pressure the Android system may kill the MainActivity of the application using the image_picker. On Android the image_picker makes use of the default <code>Intent.ACTION_GET_CONTENT</code> or <code>MediaStore.ACTION_IMAGE_CAPTURE</code> intents. This means that while the intent is executing the source application is moved to the background and becomes eligible for cleanup when the system is low on memory. When the intent finishes executing, Android will restart the application. Since the data is never returned to the original call use the <code>ImagePicker.retrieveLostData()</code> method to retrieve the lost data. For example:</p> <!--?code-excerpt "readme_excerpts.dart (LostData)"?--> <pre><code class="language-dart">Future<void> getLostData() async { final ImagePicker picker = ImagePicker(); final LostDataResponse response = await picker.retrieveLostData(); if (response.isEmpty) { return; } final List<XFile>? files = response.files; if (files != null) { _handleLostFiles(files); } else { _handleError(response.exception); } } </code></pre> <p>This check should always be run at startup in order to detect and handle this case. Please refer to the <a href="https://pub.dev/packages/image_picker/example">example app</a> for a more complete example of handling this flow.</p> <h4 id="permanently-storing-images-and-videos">Permanently storing images and videos</h4> <p>Images and videos picked using the camera are saved to your application's local cache, and should therefore be expected to only be around temporarily. If you require your picked image to be stored permanently, it is your responsibility to move it to a more permanent location.</p> <h4 id="android-photo-picker">Android Photo Picker</h4> <p>On Android 13 and above this package uses the <a href="https://developer.android.com/training/data-storage/shared/photopicker" rel="ugc">Android Photo Picker</a> . On Android 12 and below use of Android Photo Picker is optional. <a href="https://pub.dev/packages/image_picker_android">Learn how to use it</a>.</p> <h4 id="using-launchmode-singleinstance">Using <code>launchMode: singleInstance</code></h4> <p>Launching the image picker from an <code>Activity</code> with <code>launchMode: singleInstance</code> will always return <code>RESULT_CANCELED</code>. In this launch mode, new activities are created in a separate <a href="https://developer.android.com/guide/components/activities/tasks-and-back-stack" rel="ugc">Task</a>. As activities cannot communicate between tasks, the image picker activity cannot send back its eventual result to the calling activity. To work around this problem, consider using <code>launchMode: singleTask</code> instead.</p> <h3 class="hash-header" id="windows-macos-and-linux">Windows, macOS, and Linux <a href="#windows-macos-and-linux" class="hash-link">#</a></h3> <p>This plugin currently has limited support for the three desktop platforms, serving as a wrapper around the <a href="https://pub.dev/packages/file_selector"><code>file_selector</code></a> plugin with appropriate file type filters set. Selection modification options, such as max width and height, are not yet supported.</p> <p>By default, <code>ImageSource.camera</code> is not supported, since unlike on Android and iOS there is no system-provided UI for taking photos. However, the desktop implementations allow delegating to a camera handler by setting a <code>cameraDelegate</code> before using <code>image_picker</code>, such as in <code>main()</code>:</p> <!--?code-excerpt "readme_excerpts.dart (CameraDelegate)"?--> <pre><code class="language-dart">import 'package:image_picker_platform_interface/image_picker_platform_interface.dart'; // ··· class MyCameraDelegate extends ImagePickerCameraDelegate { @override Future<XFile?> takePhoto( {ImagePickerCameraDelegateOptions options = const ImagePickerCameraDelegateOptions()}) async { return _takeAPhoto(options.preferredCameraDevice); } @override Future<XFile?> takeVideo( {ImagePickerCameraDelegateOptions options = const ImagePickerCameraDelegateOptions()}) async { return _takeAVideo(options.preferredCameraDevice); } } // ··· void setUpCameraDelegate() { final ImagePickerPlatform instance = ImagePickerPlatform.instance; if (instance is CameraDelegatingImagePickerPlatform) { instance.cameraDelegate = MyCameraDelegate(); } } </code></pre> <p>Once you have set a <code>cameraDelegate</code>, <code>image_picker</code> calls with <code>ImageSource.camera</code> will work as normal, calling your provided delegate. We encourage the community to build packages that implement <code>ImagePickerCameraDelegate</code>, to provide options for desktop camera UI.</p> <h4 id="macos-installation">macOS installation</h4> <p>Since the macOS implementation uses <code>file_selector</code>, you will need to add a filesystem access <a href="https://docs.flutter.dev/platform-integration/macos/building#entitlements-and-the-app-sandbox" rel="ugc">entitlement</a>:</p> <pre><code class="language-xml"> <key>com.apple.security.files.user-selected.read-only</key> <true/> </code></pre> <h3 class="hash-header" id="example">Example <a href="#example" class="hash-link">#</a></h3> <!--?code-excerpt "readme_excerpts.dart (Pick)"?--> <pre><code class="language-dart">final ImagePicker picker = ImagePicker(); // Pick an image. final XFile? image = await picker.pickImage(source: ImageSource.gallery); // Capture a photo. final XFile? photo = await picker.pickImage(source: ImageSource.camera); // Pick a video. final XFile? galleryVideo = await picker.pickVideo(source: ImageSource.gallery); // Capture a video. final XFile? cameraVideo = await picker.pickVideo(source: ImageSource.camera); // Pick multiple images. final List<XFile> images = await picker.pickMultiImage(); // Pick singe image or video. final XFile? media = await picker.pickMedia(); // Pick multiple images and videos. final List<XFile> medias = await picker.pickMultipleMedia(); </code></pre> <h2 class="hash-header" id="migrating-to-10">Migrating to 1.0 <a href="#migrating-to-10" class="hash-link">#</a></h2> <p>Starting with version 0.8.2 of the image_picker plugin, new methods were added that return <code>XFile</code> instances (from the <a href="https://pub.dev/packages/cross_file">cross_file</a> package) rather than the plugin's own <code>PickedFile</code> instances. The previous methods were supported through 0.8.9, and removed in 1.0.0.</p> <h4 id="call-the-new-methods">Call the new methods</h4> <table> <thead> <tr> <th>Old API</th> <th>New API</th> </tr> </thead> <tbody> <tr> <td><code>PickedFile image = await _picker.getImage(...)</code></td> <td><code>XFile image = await _picker.pickImage(...)</code></td> </tr> <tr> <td><code>List<PickedFile> images = await _picker.getMultiImage(...)</code></td> <td><code>List<XFile> images = await _picker.pickMultiImage(...)</code></td> </tr> <tr> <td><code>PickedFile video = await _picker.getVideo(...)</code></td> <td><code>XFile video = await _picker.pickVideo(...)</code></td> </tr> <tr> <td><code>LostData response = await _picker.getLostData()</code></td> <td><code>LostDataResponse response = await _picker.retrieveLostData()</code></td> </tr> </tbody> </table> </section></div></div></div><aside class="detail-info-box"><a class="packages-scores" href="/packages/image_picker/score"><div class="packages-score packages-score-like"><div class="packages-score-value -has-value"><span class="packages-score-value-number">7132</span><span class="packages-score-value-sign"></span></div><div class="packages-score-label">likes</div></div><div class="packages-score packages-score-health"><div class="packages-score-value -has-value"><span class="packages-score-value-number">160</span><span class="packages-score-value-sign"></span></div><div class="packages-score-label">pub points</div></div><div class="packages-score packages-score-popularity"><div class="packages-score-value -has-value"><span class="packages-score-value-number">100</span><span class="packages-score-value-sign">%</span></div><div class="packages-score-label">popularity</div></div></a><h3 class="title">Publisher</h3><p><a href="/publishers/flutter.dev"><img class="-pub-publisher-shield filter-invert-on-dark" src="/static/hash-o6oemknr/img/material-icon-verified.svg" alt="verified publisher" width="14" height="14" title="Published by a pub.dev verified publisher"/>flutter.dev</a></p><h3 class="title pkg-infobox-metadata">Metadata</h3><p>Flutter plugin for selecting images from the Android and iOS image library, and taking new pictures with the camera.</p><p><a class="link" href="https://github.com/flutter/packages/tree/main/packages/image_picker/image_picker" rel="ugc">Repository (GitHub)</a><br/><a class="link" href="https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+image_picker%22" rel="ugc">View/report issues</a><br/><a class="link" href="https://github.com/flutter/packages/blob/main/CONTRIBUTING.md" rel="ugc">Contributing</a><br/></p><h3 class="title">Topics</h3><p><a href="/packages?q=topic%3Acamera" rel="nofollow">#camera</a> <a href="/packages?q=topic%3Aimage-picker" rel="nofollow">#image-picker</a> <a href="/packages?q=topic%3Afiles" rel="nofollow">#files</a> <a href="/packages?q=topic%3Afile-selection" rel="nofollow">#file-selection</a></p><h3 class="title">Documentation</h3><p><a class="link" href="/documentation/image_picker/latest/">API reference</a><br/></p><h3 class="title">License</h3><p><img class="inline-icon-img filter-invert-on-dark" src="/static/hash-o6oemknr/img/material-icon-balance.svg" alt="" width="14" height="14" role="presentation"/>Apache-2.0, BSD-3-Clause (<a href="/packages/image_picker/license">license</a>)</p><h3 class="title">Dependencies</h3><p><a href="https://api.flutter.dev/">flutter</a>, <a href="/packages/image_picker_android" title="^0.8.7">image_picker_android</a>, <a href="/packages/image_picker_for_web" title=">=2.2.0 <4.0.0">image_picker_for_web</a>, <a href="/packages/image_picker_ios" title="^0.8.8">image_picker_ios</a>, <a href="/packages/image_picker_linux" title="^0.2.1">image_picker_linux</a>, <a href="/packages/image_picker_macos" title="^0.2.1">image_picker_macos</a>, <a href="/packages/image_picker_platform_interface" title="^2.10.0">image_picker_platform_interface</a>, <a href="/packages/image_picker_windows" title="^0.2.1">image_picker_windows</a></p><h3 class="title">More</h3><p><a href="/packages?q=dependency%3Aimage_picker" rel="nofollow">Packages that depend on image_picker</a></p></aside></div><script type="application/ld+json">{"@context":"http\u003a\u002f\u002fschema.org","@type":"SoftwareSourceCode","name":"image\u005fpicker","version":"1.1.2","description":"image\u005fpicker - Flutter plugin for selecting images from the Android and iOS image library, and taking new pictures with the camera.","url":"https\u003a\u002f\u002fpub.dev\u002fpackages\u002fimage\u005fpicker","dateCreated":"2017-05-11T18\u003a34\u003a33.878369Z","dateModified":"2024-05-31T15\u003a20\u003a34.803238Z","programmingLanguage":"Dart","image":"https\u003a\u002f\u002fpub.dev\u002fstatic\u002fimg\u002fpub-dev-icon-cover-image.png","license":"https\u003a\u002f\u002fpub.dev\u002fpackages\u002fimage\u005fpicker\u002flicense"}</script></div><div class="detail-metadata"><h3 class="detail-metadata-title"><span class="detail-metadata-toggle">←</span> Metadata</h3><div class="detail-info-box"><a class="packages-scores" href="/packages/image_picker/score"><div class="packages-score packages-score-like"><div class="packages-score-value -has-value"><span class="packages-score-value-number">7132</span><span class="packages-score-value-sign"></span></div><div class="packages-score-label">likes</div></div><div class="packages-score packages-score-health"><div class="packages-score-value -has-value"><span class="packages-score-value-number">160</span><span class="packages-score-value-sign"></span></div><div class="packages-score-label">pub points</div></div><div class="packages-score packages-score-popularity"><div class="packages-score-value -has-value"><span class="packages-score-value-number">100</span><span class="packages-score-value-sign">%</span></div><div class="packages-score-label">popularity</div></div></a><h3 class="title">Publisher</h3><p><a href="/publishers/flutter.dev"><img class="-pub-publisher-shield filter-invert-on-dark" src="/static/hash-o6oemknr/img/material-icon-verified.svg" alt="verified publisher" width="14" height="14" title="Published by a pub.dev verified publisher"/>flutter.dev</a></p><h3 class="title pkg-infobox-metadata">Metadata</h3><p>Flutter plugin for selecting images from the Android and iOS image library, and taking new pictures with the camera.</p><p><a class="link" href="https://github.com/flutter/packages/tree/main/packages/image_picker/image_picker" rel="ugc">Repository (GitHub)</a><br/><a class="link" href="https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+image_picker%22" rel="ugc">View/report issues</a><br/><a class="link" href="https://github.com/flutter/packages/blob/main/CONTRIBUTING.md" rel="ugc">Contributing</a><br/></p><h3 class="title">Topics</h3><p><a href="/packages?q=topic%3Acamera" rel="nofollow">#camera</a> <a href="/packages?q=topic%3Aimage-picker" rel="nofollow">#image-picker</a> <a href="/packages?q=topic%3Afiles" rel="nofollow">#files</a> <a href="/packages?q=topic%3Afile-selection" rel="nofollow">#file-selection</a></p><h3 class="title">Documentation</h3><p><a class="link" href="/documentation/image_picker/latest/">API reference</a><br/></p><h3 class="title">License</h3><p><img class="inline-icon-img filter-invert-on-dark" src="/static/hash-o6oemknr/img/material-icon-balance.svg" alt="" width="14" height="14" role="presentation"/>Apache-2.0, BSD-3-Clause (<a href="/packages/image_picker/license">license</a>)</p><h3 class="title">Dependencies</h3><p><a href="https://api.flutter.dev/">flutter</a>, <a href="/packages/image_picker_android" title="^0.8.7">image_picker_android</a>, <a href="/packages/image_picker_for_web" title=">=2.2.0 <4.0.0">image_picker_for_web</a>, <a href="/packages/image_picker_ios" title="^0.8.8">image_picker_ios</a>, <a href="/packages/image_picker_linux" title="^0.2.1">image_picker_linux</a>, <a href="/packages/image_picker_macos" title="^0.2.1">image_picker_macos</a>, <a href="/packages/image_picker_platform_interface" title="^2.10.0">image_picker_platform_interface</a>, <a href="/packages/image_picker_windows" title="^0.2.1">image_picker_windows</a></p><h3 class="title">More</h3><p><a href="/packages?q=dependency%3Aimage_picker" rel="nofollow">Packages that depend on image_picker</a></p></div><p class="detail-lead-back"><a class="detail-metadata-toggle">Back</a></p></div><div id="-screenshot-carousel" class="carousel"><fab id="-carousel-prev" class="mdc-fab carousel-prev carousel-nav" data-mdc-auto-init="MDCRipple" title="Previous" data-ga-click-event="screenshot-carousel-prev-click" tabindex="0"><div class="mdc-fab__ripple"></div><img class="mdc-fab__icon" src="/static/hash-o6oemknr/img/keyboard_arrow_left.svg" alt="previous" width="24" height="24" aria-hidden="true"/></fab><div id="-image-container" class="image-container"></div><fab id="-carousel-next" class="mdc-fab carousel-next carousel-nav" data-mdc-auto-init="MDCRipple" title="Next" data-ga-click-event="screenshot-carousel-next-click" tabindex="0"><div class="mdc-fab__ripple"></div><img class="mdc-fab__icon" src="/static/hash-o6oemknr/img/keyboard_arrow_right.svg" alt="next" width="24" height="24" aria-hidden="true"/></fab><p id="-screenshot-description" class="screenshot-description"></p></div></main><footer class="site-footer"><a class="link" href="https://dart.dev/">Dart language</a><a class="link sep" href="/report?subject=package%3Aimage_picker&url=https%3A%2F%2Fpub.dev%2Fpackages%2Fimage_picker">Report package</a><a class="link sep" href="/policy">Policy</a><a class="link sep" href="https://www.google.com/intl/en/policies/terms/">Terms</a><a class="link sep" href="https://developers.google.com/terms/">API Terms</a><a class="link sep" href="/security">Security</a><a class="link sep" href="https://www.google.com/intl/en/policies/privacy/">Privacy</a><a class="link sep" href="/help">Help</a><a class="link icon sep" href="/feed.atom"><img class="inline-icon" src="/static/hash-o6oemknr/img/rss-feed-icon.svg" alt="RSS" width="20" height="20" title="RSS/atom feed"/></a><a class="link icon github_issue" href="https://github.com/dart-lang/pub-dev/issues/new"><img class="inline-icon" src="/static/hash-o6oemknr/img/bug-report-white-96px.png" alt="bug report" width="20" height="20" title="Report an issue with this site"/></a></footer><script src="/static/hash-o6oemknr/highlight/highlight-with-init.js" defer="defer"></script></body></html>