我正在使用最新的相机插件版本拍照,我正在使用颤振示例中的代码。这是我选择相机的方式:
final cameras = await availableCameras();
final firstCamera = cameras.first;
Run Code Online (Sandbox Code Playgroud)
这是在init里面:
_cameraController = CameraController(
widget.camera,
ResolutionPreset.medium,
enableAudio: false,
);
Run Code Online (Sandbox Code Playgroud)
这是相关代码的其余部分:
Future _takePhoto(BuildContext context) async {
try {
await _initializeControllerFuture;
final path = join(
(await getTemporaryDirectory()).path,
'${DateTime.now()}.png',
);
await _cameraController.takePicture(path);
setState(() {
_imagePath = path;
});
} catch (e) {
print(e);
}
}
Run Code Online (Sandbox Code Playgroud)
之后,我将照片展示给用户,Image.file(File(_imagePath))然后将照片发送到 API。问题是有时会以错误的方向拍摄照片。(这个我很确定,因为照片在数据库中也旋转了。)例如,在3年前的小米手机上,它完美无缺,但在某些新的三星手机上,照片总是旋转。
如何确保旋转始终正确?(即使在 ios 设备上)
我正在将密码传递给 sha256。我成功创建了sha256并且也可以打印它。当我尝试将digest.bytes 转换为字符串并附加它时,问题就开始了。
\n\nimport \'package:crypto/crypto.dart\';\n\nvar url = "http://example_api.php?";\nurl += \'&hash=\';\n\n// hash the password\nvar bytes = utf8.encode(password);\nvar digest = sha256.convert(bytes);\nprint("Digest as hex string: $digest");\n\nurl += String.fromCharCodes(digest.bytes);\nRun Code Online (Sandbox Code Playgroud)\n\n打印为:摘要为十六进制字符串:03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4
\n\n这附加到网址:\xc2\xacgB\xc3\xb3\xc3\xa1\\v\xc3\xa1\xc2\xa5\xc3\xa2U\xc3\xb0g6#\xc3\x88\xc2\xb3\xc2\xb4E \xc3\xb9x\xc3\x97\xc3\x88F\xc3\xb4
\n\n我究竟做错了什么?我还尝试了 utf8.decode 方法,但使用它给了我一个错误。
\n