Skip to content

Commit a4ab80d

Browse files
committed
Migrate from heic_to_jpg to heif_converter
image_gallery_saver 0.2.0 -> heif_converter 1.0.1 heic_to_jpg as not received an update since 2022 (repo archived) migrated to heif_converter and added support for .heif files.
1 parent b7a4367 commit a4ab80d

3 files changed

Lines changed: 18 additions & 18 deletions

File tree

lib/services/auto_upload_manager.dart

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import 'package:dio/dio.dart';
77
import 'package:dio_cookie_manager/dio_cookie_manager.dart';
88
import 'package:flutter/foundation.dart';
99
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
10-
import 'package:heic_to_jpg/heic_to_jpg.dart';
10+
import 'package:heif_converter/heif_converter.dart';
1111
import 'package:piwigo_ng/models/album_model.dart';
1212
import 'package:piwigo_ng/models/status_model.dart';
1313
import 'package:piwigo_ng/network/api_client.dart';
@@ -91,13 +91,11 @@ class AutoUploadManager {
9191
// Remove folders and links
9292
List<File> files = dirFiles.where((file) => file is File).map<File>((e) => e as File).toList();
9393

94-
// Convert .heic files to .jpg
94+
// Convert heic/heif files to .jpg
9595
for (File file in files) {
96-
if (file.path.endsWith('.heic')) {
97-
debugPrint("${file.path} is Heic ! Converting to jpg... ");
98-
String? jpgPath = await HeicToJpg.convert(
99-
file.path,
100-
);
96+
if (file.path.endsWith('.heic') || file.path.endsWith('.heif')) {
97+
debugPrint("${file.path} is Heic/Heif ! Converting to jpg... ");
98+
String? jpgPath = await HeifConverter.convert(file.path, format: 'jpg');
10199
if (jpgPath != null) {
102100
files.remove(file);
103101
files.add(File(jpgPath));

lib/utils/image_actions.dart

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import 'dart:io';
33
import 'package:file_picker/file_picker.dart';
44
import 'package:flutter/material.dart';
55
import 'package:flutter_image_compress/flutter_image_compress.dart';
6-
import 'package:heic_to_jpg/heic_to_jpg.dart';
6+
import 'package:heif_converter/heif_converter.dart';
77
import 'package:image_picker/image_picker.dart';
88
import 'package:path_provider/path_provider.dart';
99
import 'package:piwigo_ng/components/dialogs/confirm_dialog.dart';
@@ -51,7 +51,11 @@ Future<File> compressImage(File file,
5151
);
5252

5353
debugPrint("Upload Compress $result");
54-
return result ?? file;
54+
if (result != null) {
55+
return File(result.path);
56+
} else {
57+
return file;
58+
}
5559
} catch (e) {
5660
debugPrint(e.toString());
5761
}
@@ -82,12 +86,10 @@ Future<List<XFile>?> onPickFiles() async {
8286
List<XFile> uploadFiles = [];
8387
for (PlatformFile file in result.files) {
8488
String? filePath = file.path;
85-
if (file.extension == 'heic' && filePath != null) {
86-
debugPrint("$filePath is Heic !");
89+
if ((file.extension == 'heic' || file.extension == 'heif') && filePath != null) {
90+
debugPrint("$filePath is Heic/Heif !");
8791
File oldFile = File(file.path!);
88-
filePath = await HeicToJpg.convert(
89-
file.path!,
90-
);
92+
filePath = await HeifConverter.convert(file.path!, format: 'jpg');
9193
oldFile.delete();
9294
}
9395
if (filePath != null) {
@@ -116,8 +118,8 @@ Future<List<XFile>?> onPickImages() async {
116118
if (Preferences.getAvailableFileTypes
117119
.contains(file.name.split('.').last)) {
118120
files.add(file);
119-
} else if (file.name.endsWith('.heic')) {
120-
String? jpgPath = await HeicToJpg.convert(file.path);
121+
} else if (file.name.endsWith('.heic') || file.name.endsWith('.heif')) {
122+
String? jpgPath = await HeifConverter.convert(file.path, format: 'jpg');
121123
if (jpgPath != null) {
122124
files.add(XFile(jpgPath));
123125
}
@@ -146,7 +148,7 @@ Future<XFile?> onTakePhoto(BuildContext context) async {
146148
requestFullMetadata: !Preferences.getRemoveMetadata,
147149
);
148150
if (image != null) {
149-
String? jpgPath = await HeicToJpg.convert(image.path);
151+
String? jpgPath = await HeifConverter.convert(image.path, format: 'jpg');
150152
if (jpgPath != null) {
151153
image = XFile(jpgPath);
152154
}

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ dependencies:
6262
permission_handler: ^10.2.0 # Check and asks for permissions
6363
share_plus: ^10.1.4 # Share files
6464
flutter_cache_manager: ^3.3.0 # Handles network image cache
65-
heic_to_jpg: ^0.2.0 # Convert heic files to jpg
65+
heif_converter: ^1.0.1 # Convert heic files to jpg
6666
provider: ^6.0.3 # Notifiers for theme and language changes
6767

6868
# Translations

0 commit comments

Comments
 (0)