diff --git a/lib/src/client.dart b/lib/src/client.dart index 0f2ce1c..2990bd3 100644 --- a/lib/src/client.dart +++ b/lib/src/client.dart @@ -489,7 +489,6 @@ class Client { /// Uploads a new user avatar for this user. Future setAvatar(MatrixFile file) async { - await file.resize(width: Client.defaultThumbnailSize); final uploadResp = await upload(file); await jsonRequest( type: HTTPType.PUT, diff --git a/lib/src/room.dart b/lib/src/room.dart index 3be3291..d45cd15 100644 --- a/lib/src/room.dart +++ b/lib/src/room.dart @@ -478,13 +478,10 @@ class Room { Event inReplyTo, Map info, bool waitUntilSent = false, - int thumbnailMaxWidth = 800, - int thumbnailMaxHeight = 600, - int thumbnailQuality = 50, + MatrixFile thumbnail, }) async { Image fileImage; Image thumbnailImage; - MatrixFile thumbnail; EncryptedFile encryptedThumbnail; String thumbnailUploadResp; @@ -505,17 +502,10 @@ class Room { } if (msgType == 'm.image') { - var thumbnailPathParts = file.path.split('/'); - thumbnailPathParts.last = 'thumbnail_' + thumbnailPathParts.last + '.jpg'; - final thumbnailPath = thumbnailPathParts.join('/'); - thumbnail = MatrixFile(bytes: file.bytes, path: thumbnailPath); - await thumbnail.resize( - width: thumbnailMaxWidth, - height: thumbnailMaxHeight, - quality: thumbnailQuality, - ); fileImage = decodeImage(file.bytes.toList()); - thumbnailImage = decodeImage(thumbnail.bytes.toList()); + if (thumbnail != null) { + thumbnailImage = decodeImage(thumbnail.bytes.toList()); + } } final sendEncrypted = encrypted && client.fileEncryptionEnabled; @@ -1257,7 +1247,6 @@ class Room { /// Uploads a new user avatar for this room. Returns the event ID of the new /// m.room.avatar event. Future setAvatar(MatrixFile file) async { - await file.resize(width: Client.defaultThumbnailSize); final uploadResp = await client.upload(file); final setAvatarResp = await client.jsonRequest( type: HTTPType.PUT, diff --git a/lib/src/utils/matrix_file.dart b/lib/src/utils/matrix_file.dart index 82298f5..b16a838 100644 --- a/lib/src/utils/matrix_file.dart +++ b/lib/src/utils/matrix_file.dart @@ -1,43 +1,12 @@ /// Workaround until [File] in dart:io and dart:html is unified import 'dart:typed_data'; - -import 'package:image/image.dart'; import 'package:matrix_file_e2ee/matrix_file_e2ee.dart'; class MatrixFile { Uint8List bytes; String path; - /// If this file is an Image, this will resize it to the - /// given width and height. Otherwise returns false. - /// At least width or height must be set! - /// The bytes will be encoded as jpg. - Future resize({ - int width, - int height, - int quality = 50, - }) async { - if (width == null && height == null) { - throw ('At least width or height must be set!'); - } - Image image; - try { - image = decodeImage(bytes); - } catch (_) { - return false; - } - var resizedImage = image; - if (image.width > width) { - resizedImage = copyResize(image, width: width); - } - if (image.height > height) { - resizedImage = copyResize(image, height: height); - } - bytes = encodeJpg(resizedImage, quality: quality); - return true; - } - /// Encrypts this file, changes the [bytes] and returns the /// encryption information as an [EncryptedFile]. Future encrypt() async {