Compress iOS thumbnails
This commit is contained in:
parent
da2cb1b2cf
commit
47052a6596
3 changed files with 14 additions and 3 deletions
|
@ -1,6 +1,7 @@
|
|||
const int THUMBNAIL_SMALL_SIZE = 256;
|
||||
const int THUMBNAIL_SMALL_SIZE_QUALITY = 80;
|
||||
const int THUMBNAIL_LARGE_SIZE = 512;
|
||||
const int COMPRESSED_THUMBNAIL_RESOLUTION = 1080;
|
||||
const int THUMBNAIL_DATA_LIMIT = 100 * 1024;
|
||||
const String SENTRY_DSN =
|
||||
"http://96780dc0b00f4c69a16c02e90d379996@3.211.17.56/2";
|
||||
|
|
|
@ -4,6 +4,7 @@ import 'dart:convert';
|
|||
import 'dart:io' as io;
|
||||
import 'package:connectivity/connectivity.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:flutter_image_compress/flutter_image_compress.dart';
|
||||
import 'package:flutter_sodium/flutter_sodium.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:photos/core/configuration.dart';
|
||||
|
@ -15,6 +16,7 @@ import 'package:photos/models/location.dart';
|
|||
import 'package:photos/models/upload_url.dart';
|
||||
import 'package:photos/services/collections_service.dart';
|
||||
import 'package:photos/utils/crypto_util.dart';
|
||||
import 'package:photos/utils/file_util.dart';
|
||||
|
||||
class FileUploader {
|
||||
final _logger = Logger("FileUploader");
|
||||
|
@ -153,7 +155,7 @@ class FileUploader {
|
|||
final fileAttributes =
|
||||
await CryptoUtil.encryptFile(sourceFile.path, encryptedFilePath);
|
||||
|
||||
final thumbnailData = (await (await file.getAsset()).thumbDataWithSize(
|
||||
var thumbnailData = (await (await file.getAsset()).thumbDataWithSize(
|
||||
THUMBNAIL_LARGE_SIZE,
|
||||
THUMBNAIL_LARGE_SIZE,
|
||||
quality: 50,
|
||||
|
@ -162,6 +164,14 @@ class FileUploader {
|
|||
_logger.severe("Could not generate thumbnail for " + file.toString());
|
||||
throw InvalidFileError();
|
||||
}
|
||||
final thumbnailSize = thumbnailData.length;
|
||||
if (thumbnailSize > THUMBNAIL_DATA_LIMIT) {
|
||||
thumbnailData = await compressThumbnail(thumbnailData);
|
||||
_logger.info("Thumbnail size " + thumbnailSize.toString());
|
||||
_logger
|
||||
.info("Compressed thumbnail size " + thumbnailData.length.toString());
|
||||
}
|
||||
|
||||
final encryptedThumbnailName =
|
||||
file.generatedID.toString() + "_thumbnail.encrypted";
|
||||
final encryptedThumbnailPath = tempDirectory + encryptedThumbnailName;
|
||||
|
|
|
@ -289,8 +289,8 @@ Uint8List decryptFileKey(File file) {
|
|||
Future<Uint8List> compressThumbnail(Uint8List thumbnail) {
|
||||
return FlutterImageCompress.compressWithList(
|
||||
thumbnail,
|
||||
minHeight: 1080,
|
||||
minWidth: 1080,
|
||||
minHeight: COMPRESSED_THUMBNAIL_RESOLUTION,
|
||||
minWidth: COMPRESSED_THUMBNAIL_RESOLUTION,
|
||||
quality: 25,
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue