Skip to content

Commit ffacf7f

Browse files
committed
feat(image) : Add image utils.
Signed-off-by: TusharFA <tushar@flick2know.com>
1 parent ead9333 commit ffacf7f

File tree

4 files changed

+95
-0
lines changed

4 files changed

+95
-0
lines changed

example/macos/Flutter/GeneratedPluginRegistrant.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import firebase_analytics
1111
import firebase_core
1212
import firebase_crashlytics
1313
import firebase_messaging
14+
import flutter_image_compress_macos
1415
import geolocator_apple
1516
import package_info_plus
1617
import path_provider_foundation
@@ -25,6 +26,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
2526
FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin"))
2627
FLTFirebaseCrashlyticsPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCrashlyticsPlugin"))
2728
FLTFirebaseMessagingPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseMessagingPlugin"))
29+
FlutterImageCompressMacosPlugin.register(with: registry.registrar(forPlugin: "FlutterImageCompressMacosPlugin"))
2830
GeolocatorPlugin.register(with: registry.registrar(forPlugin: "GeolocatorPlugin"))
2931
FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
3032
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))

example/pubspec.lock

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,54 @@ packages:
431431
url: "https://pub.dev"
432432
source: hosted
433433
version: "3.3.1"
434+
flutter_image_compress:
435+
dependency: transitive
436+
description:
437+
name: flutter_image_compress
438+
sha256: "45a3071868092a61b11044c70422b04d39d4d9f2ef536f3c5b11fb65a1e7dd90"
439+
url: "https://pub.dev"
440+
source: hosted
441+
version: "2.3.0"
442+
flutter_image_compress_common:
443+
dependency: transitive
444+
description:
445+
name: flutter_image_compress_common
446+
sha256: c5c5d50c15e97dd7dc72ff96bd7077b9f791932f2076c5c5b6c43f2c88607bfb
447+
url: "https://pub.dev"
448+
source: hosted
449+
version: "1.0.6"
450+
flutter_image_compress_macos:
451+
dependency: transitive
452+
description:
453+
name: flutter_image_compress_macos
454+
sha256: "20019719b71b743aba0ef874ed29c50747461e5e8438980dfa5c2031898f7337"
455+
url: "https://pub.dev"
456+
source: hosted
457+
version: "1.0.3"
458+
flutter_image_compress_ohos:
459+
dependency: transitive
460+
description:
461+
name: flutter_image_compress_ohos
462+
sha256: e76b92bbc830ee08f5b05962fc78a532011fcd2041f620b5400a593e96da3f51
463+
url: "https://pub.dev"
464+
source: hosted
465+
version: "0.0.3"
466+
flutter_image_compress_platform_interface:
467+
dependency: transitive
468+
description:
469+
name: flutter_image_compress_platform_interface
470+
sha256: "579cb3947fd4309103afe6442a01ca01e1e6f93dc53bb4cbd090e8ce34a41889"
471+
url: "https://pub.dev"
472+
source: hosted
473+
version: "1.0.5"
474+
flutter_image_compress_web:
475+
dependency: transitive
476+
description:
477+
name: flutter_image_compress_web
478+
sha256: f02fe352b17f82b72f481de45add240db062a2585850bea1667e82cc4cd6c311
479+
url: "https://pub.dev"
480+
source: hosted
481+
version: "0.1.4+1"
434482
flutter_keyboard_visibility:
435483
dependency: transitive
436484
description:

lib/src/utils/image_utils.dart

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import 'dart:io';
2+
3+
import 'package:fa_flutter_core/fa_flutter_core.dart';
4+
import 'package:flutter_image_compress/flutter_image_compress.dart';
5+
6+
class ImageUtils {
7+
Future<Directory> getCompressedImagesDirectory() async {
8+
final tempDir = await getTemporaryDirectory();
9+
final compressedImageDir = Directory('${tempDir.path}/compressed_images');
10+
if (!compressedImageDir.existsSync()) {
11+
compressedImageDir.createSync();
12+
}
13+
return compressedImageDir;
14+
}
15+
16+
Future<void> removedCompressedImagesFromDirectory(String path) async {
17+
await File(path).delete();
18+
}
19+
20+
Future<File?> getCompressedImage(
21+
File xFile,
22+
Directory compressedImageDir, {
23+
int quality = 60,
24+
bool enforceDelete = false,
25+
}) async {
26+
try {
27+
final comprssesedFile = await FlutterImageCompress.compressAndGetFile(
28+
xFile.path,
29+
"${compressedImageDir.path}/${DateTime.now().millisecondsSinceEpoch}.jpg",
30+
quality: quality,
31+
);
32+
if (enforceDelete) {
33+
await xFile.delete();
34+
}
35+
if (comprssesedFile != null) {
36+
return File(comprssesedFile.path);
37+
}
38+
} catch (e, stk) {
39+
print(e);
40+
print(stk);
41+
return null;
42+
}
43+
}
44+
}

pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ dependencies:
7070
url_launcher: ^6.2.5
7171
uuid: ^4.3.3
7272
provider: ^6.1.2
73+
flutter_image_compress: ^2.3.0
7374

7475
dev_dependencies:
7576
flutter_test:

0 commit comments

Comments
 (0)