ionic-framework - 需要在 Ionic 4 中将点击的图像捕获为 base64
问题描述
在网页上尝试。我正在使用 PWA、Ionic 4 和 Android。
在我的home.html
我添加了一个按钮
<!-- Trigger the file input -->
<ion-button expand="full" (click)="captureImage()">
<ion-icon slot="start" name="camera"></ion-icon>
Capture Image
</ion-button>
在我home.ts
的下面有这段代码:
captureImage() {
this.fileinput.nativeElement.click();
}
单击按钮时,它会打开选择选项camera app
,现在当我选择相机应用程序时,它允许我单击图像。单击它后,我将返回屏幕。在这里,我想将图像获取为base64
.
我怎么做?
解决方案
您可以从以下位置获取文件:
this.fileinput.nativeElement.files;
要在选择后转换文件,请使用FileReader.readAsDataUrl()
. 您可以在此处找到相同的完整代码:
https ://forum.ionicframework.com/t/ionic-4-pwa-camera/151148/12
要存储文件: 在上传之前调用它:
upload()
{
const fileList: FileList = this. fileinput.nativeElement.files;
if (fileList && fileList.length > 0)
{
this.firstFileToBase64(fileList[0]).then((result: string) =>
{
this.base64File = result;
}, (err: any) => {
// Ignore error, do nothing
this.base64File = null;
});
}
}
private firstFileToBase64(fileImage: File): Promise<{}> {
return new Promise((resolve, reject) => {
let fileReader: FileReader = new FileReader();
if (fileReader && fileImage != null) {
fileReader.readAsDataURL(fileImage);
fileReader.onload = () => {
resolve(fileReader.result);
};
fileReader.onerror = (error) => {
reject(error);
};
} else {
reject(new Error('No file found'));
}
});
}
推荐阅读
- r - 根据 data.table 中特定列上的多个条件标记行
- android - 如何在 tensorflow 对象检测应用程序中识别任何对象时将文本添加到语音中>
- c++ - 为什么 c++ 的“this”被设计成指针而不是指向对象?
- java - JPA / MySQL 创建错误精度和规模
- android - 改造如何上传这样的文件 https://xxxxxx?filename=myfile.dat
- java - 如何在 java7 中处理异常“javax.net.ssl.SSLHandshakeException:收到致命警报:handshake_failure”
- python - 如何找到数据框的哪些值与特定平均值“显着”不同
- javascript - 从 es6 类中的 addEventListener 触发 handleEvent()
- java - 我们如何改变我们初始化的最终变量?
- css - CSS 溢出原理