applyRotationFix method
Implementation
Future<File> applyRotationFix(String originalPath) async {
final originalFile = File(originalPath);
img.Image? fixedImage;
try {
Map<String, IfdTag> data = await readExifFromFile(File(originalPath));
print(data);
int length = int.parse(data['EXIF ExifImageLength'].toString());
int width = int.parse(data['EXIF ExifImageWidth'].toString());
String orientation = data['Image Orientation'].toString();
print("sini ya ${orientation} $length $width");
if (length != null && width != null && orientation != null) {
if (length > width) {
if (orientation.contains('Rotated 90 CW')) {
img.Image? original =
img.decodeImage(File(originalPath).readAsBytesSync());
fixedImage = img.copyRotate(
original!,
angle: -90,
);
} else if (orientation.contains('Rotated 180 CW')) {
img.Image? original =
img.decodeImage(File(originalPath).readAsBytesSync());
fixedImage = img.copyRotate(
original!,
angle: -180,
);
} else if (orientation.contains('Rotated 270 CW')) {
img.Image? original =
img.decodeImage(File(originalPath).readAsBytesSync());
fixedImage = img.copyRotate(
original!,
angle: -270,
);
}
}
}
originalFile.writeAsBytesSync(img.encodeJpg(fixedImage!));
return originalFile;
} catch (e) {
print(e.toString());
return originalFile;
}
}