Orientação gerada a partir de informações públicas. Apenas para referência.
Um pacote Flutter que permite a criação de widgets de imagem totalmente personalizáveis e editáveis, permitindo que os usuários modifiquem imagens diretamente no aplicativo. Ele suporta recursos interativos como cortar, redimensionar e posicionar, tornando-o ideal para fotos de perfil, avatares e cabeças de bate-papo. O pacote foi projetado para integração perfeita em plataformas Android, iOS e macOS, oferecendo aos desenvolvedores flexibilidade no design da interface e na interação com o usuário. Com uma API limpa e comportamento responsivo, ele melhora a experiência do usuário em aplicativos que exigem manipulação dinâmica de imagens.
Casos de uso
Edição de imagem de perfil
Personalização de avatar
Modificação de imagem de cabeça de bate-papo
Criação de conteúdo gerado pelo usuário
sobreposições de imagem interativas
Principais recursos
edição de imagem personalizável
Suporte multiplataforma (Android, iOS, macOS)
Recorte e redimensionamento interativo
Componentes de interface responsiva
Integração fácil com aplicativos Flutter existentes
Indicado para
Aplicativos de mídia social
Gerenciamento de perfil do usuário
Aplicativos de mensagens
Ferramentas de edição de fotos
Componentes de interface personalizados
Considerações
Requer manipulação cuidadosa da resolução da imagem
Pode afetar o desempenho com imagens grandes
Limitado a recursos básicos de edição
Não adequado para edição avançada de fotos
Depende de comportamentos específicos da plataforma para renderização
README original
Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.
Editable Image | Flutter Package
Flutter package for creating a fully customizable and editable image widget. The package has been written solely in Dart Language.
Features
A powerful and fully customizable widget. It provides a custom widget to save time.
For example, almost in every profile settings interface, etc., there is a profile image. Instead of writing from scratch, this widget can be used and can save a lot of time.
Getting started
Let's take a look at how to implement EditableImage to fastly create user interfaces for profile picture edit, etc.
Please upgrade the Kotlin version (ext.kotlin_version) to 1.7.0 or the latest version. To do that, find the following line inside android/build.gradle and modify it:
ext.kotlin_version = '1.7.0'
Please upgrade the Gradle version (ext.kotlin_version) to 6.8.3 or the latest version but lower than 7.0.0. To do that, find the following line inside android/gradle/wrapper/gradle-wrapper.properties and modify it:
I recommand you add android:requestLegacyExternalStorage="true" to AndroidManifest.xml. Therefore, please modify android/app/src/main/AndroidManifest.xml and add the following line inside application:
If you found some warning logs with Glide appearing, then the main project needs an implementation of AppGlideModule. See Generated API.
iOS Setup
Platform version must be at least 9.0. Please modify ios/Podfile and update accordingly:
platform :ios, '11.0'
Add the following lines to ios/Runner/Info.plist:
<key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><true/></dict><key>NSPhotoLibraryUsageDescription</key><string>Put here your permission description.</string>
macOS Setup
Platform version must be at least 10.15. Please modify macos/Podfile and update accordingly:
platform :osx, '10.15'
Please set the minimum deployment target to 10.15. Use XCode to open macos/Runner.xcworkspace:
Follow the iOS instructions and modify ios/Runner/Info.plist accordingly.
Usage
Basic usage example:
main.dart
// A simple usage of EditableImage.// This method gets called when trying to change an image.void_directUpdateImage(File? file) async {
if (file == null) return;
setState(() {
_profilePicFile = file;
});
}
EditableImage(
// Define the method that will run on the change process of the image.
onChange: (file) => _directUpdateImage(file),
// Define the source of the image.
image: _profilePicFile != null
? Image.file(_profilePicFile!, fit: BoxFit.cover)
: null,
// Define the size of EditableImage.
size: 150.0,
// Define the Theme of image picker.
imagePickerTheme: ThemeData(
// Define the default brightness and colors.
primaryColor: Colors.white,
shadowColor: Colors.transparent,
backgroundColor: Colors.white70,
iconTheme: constIconThemeData(color: Colors.black87),
// Define the default font family.
fontFamily: 'Georgia',
),
// Define the border of the image if needed.
imageBorder: Border.all(color: Colors.black87, width: 2.0),
// Define the border of the icon if needed.
editIconBorder: Border.all(color: Colors.black87, width: 2.0),
),
Example
More examples can be found in /example folder on GitHub.
User Profile 1 - an example of basic implementation of EditableImage. Simple project that simulates user profile edit screen.
User Profile 2 - an example of implementation of EditableImage. Simple project that simulates user profile edit screen.
Additional information
This package has been written solely in Dart Language yet it has the wechat_assets_picker as a dependency. Therefore, EditableImage currently supports only Android, iOS, and macOS platforms. In the future, other platform supports may be added.