mirror of
				https://gitlab.com/famedly/fluffychat.git
				synced 2025-11-04 06:17:26 +01:00 
			
		
		
		
	chore: Follow up fix image resizer
This commit is contained in:
		
							parent
							
								
									26029b3455
								
							
						
					
					
						commit
						68aaa1a0fe
					
				@ -7,7 +7,6 @@ import 'package:matrix/encryption/utils/key_verification.dart';
 | 
			
		||||
import 'package:matrix/matrix.dart';
 | 
			
		||||
import 'package:path_provider/path_provider.dart';
 | 
			
		||||
 | 
			
		||||
import 'package:fluffychat/utils/custom_image_resizer.dart';
 | 
			
		||||
import 'package:fluffychat/utils/platform_infos.dart';
 | 
			
		||||
import 'famedlysdk_store.dart';
 | 
			
		||||
import 'matrix_sdk_extensions.dart/fluffybox_database.dart';
 | 
			
		||||
@ -100,6 +99,5 @@ abstract class ClientManager {
 | 
			
		||||
            AuthenticationTypes.sso
 | 
			
		||||
        },
 | 
			
		||||
        compute: compute,
 | 
			
		||||
        customImageResizer: PlatformInfos.isMobile ? customImageResizer : null,
 | 
			
		||||
      );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,55 +0,0 @@
 | 
			
		||||
import 'dart:typed_data';
 | 
			
		||||
import 'dart:ui';
 | 
			
		||||
 | 
			
		||||
import 'package:matrix/matrix.dart';
 | 
			
		||||
import 'package:native_imaging/native_imaging.dart' as native;
 | 
			
		||||
 | 
			
		||||
Future<MatrixImageFileResizedResponse?> customImageResizer(
 | 
			
		||||
    MatrixImageFileResizeArguments arguments) async {
 | 
			
		||||
  await native.init();
 | 
			
		||||
  var nativeImg = await native.Image.loadEncoded(arguments.bytes);
 | 
			
		||||
 | 
			
		||||
  try {
 | 
			
		||||
    nativeImg = await native.Image.loadEncoded(arguments.bytes); // load on web
 | 
			
		||||
  } on UnsupportedError {
 | 
			
		||||
    // for the other platforms
 | 
			
		||||
    final dartCodec = await instantiateImageCodec(arguments.bytes);
 | 
			
		||||
    final dartFrame = await dartCodec.getNextFrame();
 | 
			
		||||
    final rgbaData = await dartFrame.image.toByteData();
 | 
			
		||||
    if (rgbaData == null) {
 | 
			
		||||
      return null;
 | 
			
		||||
    }
 | 
			
		||||
    final rgba = Uint8List.view(
 | 
			
		||||
        rgbaData.buffer, rgbaData.offsetInBytes, rgbaData.lengthInBytes);
 | 
			
		||||
    dartFrame.image.dispose();
 | 
			
		||||
    dartCodec.dispose();
 | 
			
		||||
 | 
			
		||||
    nativeImg = native.Image.fromRGBA(
 | 
			
		||||
        dartFrame.image.width, dartFrame.image.height, rgba);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  final width = nativeImg.width;
 | 
			
		||||
  final height = nativeImg.height;
 | 
			
		||||
 | 
			
		||||
  final max = arguments.maxDimension;
 | 
			
		||||
  if (width > max || height > max) {
 | 
			
		||||
    var w = max, h = max;
 | 
			
		||||
    if (width > height) {
 | 
			
		||||
      h = max * height ~/ width;
 | 
			
		||||
    } else {
 | 
			
		||||
      w = max * width ~/ height;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    final scaledImg = nativeImg.resample(w, h, native.Transform.lanczos);
 | 
			
		||||
    nativeImg.free();
 | 
			
		||||
    nativeImg = scaledImg;
 | 
			
		||||
  }
 | 
			
		||||
  final jpegBytes = await nativeImg.toJpeg(75);
 | 
			
		||||
 | 
			
		||||
  return MatrixImageFileResizedResponse(
 | 
			
		||||
    bytes: jpegBytes,
 | 
			
		||||
    width: nativeImg.width,
 | 
			
		||||
    height: nativeImg.height,
 | 
			
		||||
    blurhash: arguments.calcBlurhash ? nativeImg.toBlurhash(3, 3) : null,
 | 
			
		||||
  );
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										25
									
								
								pubspec.lock
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								pubspec.lock
									
									
									
									
									
								
							@ -1026,15 +1026,6 @@ packages:
 | 
			
		||||
      url: "https://pub.dartlang.org"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "1.0.2"
 | 
			
		||||
  native_imaging:
 | 
			
		||||
    dependency: "direct main"
 | 
			
		||||
    description:
 | 
			
		||||
      path: "."
 | 
			
		||||
      ref: HEAD
 | 
			
		||||
      resolved-ref: "8c6a5afe2c965b79b5959bb4b49c4aad020cb980"
 | 
			
		||||
      url: "https://gitlab.com/famedly/libraries/native_imaging.git"
 | 
			
		||||
    source: git
 | 
			
		||||
    version: "0.1.0"
 | 
			
		||||
  nested:
 | 
			
		||||
    dependency: transitive
 | 
			
		||||
    description:
 | 
			
		||||
@ -1697,7 +1688,21 @@ packages:
 | 
			
		||||
      name: unifiedpush
 | 
			
		||||
      url: "https://pub.dartlang.org"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "3.0.1"
 | 
			
		||||
    version: "4.0.0"
 | 
			
		||||
  unifiedpush_android:
 | 
			
		||||
    dependency: transitive
 | 
			
		||||
    description:
 | 
			
		||||
      name: unifiedpush_android
 | 
			
		||||
      url: "https://pub.dartlang.org"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "1.0.0"
 | 
			
		||||
  unifiedpush_platform_interface:
 | 
			
		||||
    dependency: transitive
 | 
			
		||||
    description:
 | 
			
		||||
      name: unifiedpush_platform_interface
 | 
			
		||||
      url: "https://pub.dartlang.org"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "1.0.0"
 | 
			
		||||
  universal_html:
 | 
			
		||||
    dependency: "direct main"
 | 
			
		||||
    description:
 | 
			
		||||
 | 
			
		||||
@ -60,8 +60,6 @@ dependencies:
 | 
			
		||||
  lottie: ^1.2.2
 | 
			
		||||
  matrix: ^0.8.17
 | 
			
		||||
  matrix_link_text: ^1.0.2
 | 
			
		||||
  native_imaging:
 | 
			
		||||
    git: https://gitlab.com/famedly/libraries/native_imaging.git
 | 
			
		||||
  open_noti_settings: ^0.4.0
 | 
			
		||||
  package_info_plus: ^1.3.0
 | 
			
		||||
  path_provider: ^2.0.9
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user