mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-01-15 13:08:42 +00:00
fix rotation issue
This commit is contained in:
parent
5b3430bee6
commit
c3f429a90a
7 changed files with 44 additions and 7 deletions
|
|
@ -13,9 +13,6 @@ Don't be lonely, get twonly! Send pictures to a friend in real time and be sure
|
||||||
- MediaView:
|
- MediaView:
|
||||||
- Bei weiteren geladenen Bildern -> Direkt anzeigen ohne pop
|
- Bei weiteren geladenen Bildern -> Direkt anzeigen ohne pop
|
||||||
|
|
||||||
## Not my issues
|
|
||||||
- FIX: Problem Bild falsch, wenn handy schräg... -> Issue already openend
|
|
||||||
|
|
||||||
## TODOS bevor first release
|
## TODOS bevor first release
|
||||||
- Settings
|
- Settings
|
||||||
- Subscription
|
- Subscription
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
|
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
|
||||||
<uses-permission android:name="android.permission.CAMERA"/>
|
<uses-permission android:name="android.permission.CAMERA"/>
|
||||||
<uses-permission android:name="android.permission.USE_BIOMETRIC"/>
|
<uses-permission android:name="android.permission.USE_BIOMETRIC"/>
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="29" />
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
<!-- Required to query activities that can process text, see:
|
<!-- Required to query activities that can process text, see:
|
||||||
https://developer.android.com/training/package-visibility and
|
https://developer.android.com/training/package-visibility and
|
||||||
https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.
|
https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,6 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver {
|
||||||
@override
|
@override
|
||||||
void didChangeAppLifecycleState(AppLifecycleState state) {
|
void didChangeAppLifecycleState(AppLifecycleState state) {
|
||||||
super.didChangeAppLifecycleState(state);
|
super.didChangeAppLifecycleState(state);
|
||||||
print("STATE: $state");
|
|
||||||
if (state == AppLifecycleState.resumed) {
|
if (state == AppLifecycleState.resumed) {
|
||||||
apiProvider.connect();
|
apiProvider.connect();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:typed_data';
|
import 'dart:typed_data';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:exif/exif.dart';
|
||||||
|
import 'package:image/image.dart' as img;
|
||||||
|
|
||||||
class ImageItem {
|
class ImageItem {
|
||||||
int width = 1;
|
int width = 1;
|
||||||
|
|
@ -29,6 +31,29 @@ class ImageItem {
|
||||||
height = decodedImage.height;
|
height = decodedImage.height;
|
||||||
width = decodedImage.width;
|
width = decodedImage.width;
|
||||||
|
|
||||||
|
if (height < width) {
|
||||||
|
final exifData = await readExifFromBytes(bytes);
|
||||||
|
|
||||||
|
img.Image fixedImage;
|
||||||
|
|
||||||
|
if (height < width) {
|
||||||
|
debugPrint('Rotating image necessary');
|
||||||
|
final originalImage = img.decodeImage(bytes)!;
|
||||||
|
if (exifData['Image Orientation']!.printable.contains('Horizontal')) {
|
||||||
|
fixedImage = img.copyRotate(originalImage, angle: 90);
|
||||||
|
} else if (exifData['Image Orientation']!.printable.contains('180')) {
|
||||||
|
fixedImage = img.copyRotate(originalImage, angle: -90);
|
||||||
|
} else if (exifData['Image Orientation']!.printable.contains('CCW')) {
|
||||||
|
fixedImage = img.copyRotate(originalImage, angle: 180);
|
||||||
|
} else {
|
||||||
|
fixedImage = img.copyRotate(originalImage, angle: 0);
|
||||||
|
}
|
||||||
|
bytes = img.encodeJpg(fixedImage);
|
||||||
|
height = fixedImage.height;
|
||||||
|
width = fixedImage.width;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return loader.complete(true);
|
return loader.complete(true);
|
||||||
} else {
|
} else {
|
||||||
return loader.complete(false);
|
return loader.complete(false);
|
||||||
|
|
|
||||||
|
|
@ -35,9 +35,8 @@ class _ShareImageEditorView extends State<ShareImageEditorView> {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
loadImage(widget.imageBytes);
|
|
||||||
|
|
||||||
super.initState();
|
super.initState();
|
||||||
|
loadImage(widget.imageBytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
|
||||||
16
pubspec.lock
16
pubspec.lock
|
|
@ -273,6 +273,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.3.1"
|
version: "0.3.1"
|
||||||
|
exif:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: exif
|
||||||
|
sha256: a7980fdb3b7ffcd0b035e5b8a5e1eef7cadfe90ea6a4e85ebb62f87b96c7a172
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.3.0"
|
||||||
fake_async:
|
fake_async:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
@ -1138,6 +1146,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.10.0"
|
version: "1.10.0"
|
||||||
|
sprintf:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: sprintf
|
||||||
|
sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "7.0.0"
|
||||||
sqflite_common:
|
sqflite_common:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ dependencies:
|
||||||
collection: ^1.18.0
|
collection: ^1.18.0
|
||||||
connectivity_plus: ^6.1.2
|
connectivity_plus: ^6.1.2
|
||||||
cv: ^1.1.3
|
cv: ^1.1.3
|
||||||
|
exif: ^3.3.0
|
||||||
fixnum: ^1.1.1
|
fixnum: ^1.1.1
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue