diff --git a/lib/src/client.dart b/lib/src/client.dart index b667ef3..e4ecdcd 100644 --- a/lib/src/client.dart +++ b/lib/src/client.dart @@ -488,7 +488,7 @@ class Client { /// Uploads a new user avatar for this user. Future setAvatar(MatrixFile file) async { - await file.resize(width: 128); + await file.resize(width: Client.defaultThumbnailSize); final uploadResp = await upload(file); await jsonRequest( type: HTTPType.PUT, @@ -557,6 +557,7 @@ class Client { static const List supportedGroupEncryptionAlgorithms = [ 'm.megolm.v1.aes-sha2' ]; + static const int defaultThumbnailSize = 256; http.Client httpClient = http.Client(); diff --git a/lib/src/room.dart b/lib/src/room.dart index 856dc64..965ffe3 100644 --- a/lib/src/room.dart +++ b/lib/src/room.dart @@ -503,10 +503,10 @@ class Room { if (msgType == 'm.image') { var thumbnailPathParts = file.path.split('/'); - thumbnailPathParts.last = 'thumbnail_' + thumbnailPathParts.last; + thumbnailPathParts.last = 'thumbnail_' + thumbnailPathParts.last + '.jpg'; final thumbnailPath = thumbnailPathParts.join('/'); thumbnail = MatrixFile(bytes: file.bytes, path: thumbnailPath); - await thumbnail.resize(width: 512); + await thumbnail.resize(width: Client.defaultThumbnailSize); fileImage = decodeImage(file.bytes.toList()); thumbnailImage = decodeImage(thumbnail.bytes.toList()); } @@ -1250,7 +1250,7 @@ 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: 256); + 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 15c5347..fd4a57a 100644 --- a/lib/src/utils/matrix_file.dart +++ b/lib/src/utils/matrix_file.dart @@ -12,6 +12,7 @@ class MatrixFile { /// 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}) async { if (width == null && height == null) { throw ('At least width or height must be set!'); @@ -23,7 +24,7 @@ class MatrixFile { return false; } final resizedImage = copyResize(image, width: width, height: height); - bytes = encodePng(resizedImage); + bytes = encodeJpg(resizedImage, quality: 10); return true; }