ionic4中调用相机(Camera)

在ionic项目中安装camera插件

官方地址:

ionic cordova plugin add cordova-plugin-camera
npm install @ionic-native/camera
在对应的模块中导入

tab1.module.ts

import { Camera, CameraOptions } from '@ionic-native/camera/ngx';

@NgModule({
    imports: [
        IonicModule,
        CommonModule,
        FormsModule,
        RouterModule.forChild([{ path: '', component: Tab1Page }])
    ],
    declarations: [Tab1Page],
    providers: [Device, Camera]
})
export class Tab1PageModule {}
在对应的ts文件中导入并使用

tab1.page.ts


import { Component } from '@angular/core';
import { Device } from '@ionic-native/device/ngx';
import { Camera, CameraOptions } from '@ionic-native/camera/ngx';

@Component({
  selector: 'app-tab1',
  templateUrl: 'tab1.page.html',
  styleUrls: ['tab1.page.scss']
})
export class Tab1Page {

    constructor(
        private device: Device,
        private camera: Camera
    ) {
        // alert(JSON.stringify(this.device.uuid));
        console.log(this.device.uuid);
    }

    base64Img = '';

    handleCamera() {
        const options: CameraOptions = {
            quality: 100,   // 图片质量
            destinationType: this.camera.DestinationType.DATA_URL, // 返回类型 .FILE_URI 返回文件地址 .DATA_URL 返回base64编码
            encodingType: this.camera.EncodingType.JPEG, // 图片格式 JPEG=0 PNG=1
            mediaType: this.camera.MediaType.PICTURE, // 媒体类型
            sourceType: this.camera.PictureSourceType.CAMERA, // 图片来源  CAMERA相机 PHOTOLIBRARY 图库
            allowEdit: true, // 允许编辑
            targetWidth: 300, // 缩放图片的宽度
            targetHeight: 300, // 缩放图片的高度
            saveToPhotoAlbum: false, // 是否保存到相册
            correctOrientation: true, // 设置摄像机拍摄的图像是否为正确的方向
        };

        this.camera.getPicture(options).then((imageData) => {
            const base64Image = 'data:image/jpeg;base64,' + imageData;
            this.base64Img = base64Image;
        }, (err) => {
            alert(err);
        });
    }

}
显示效果

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
可以使用Ionic Native相机插件来实现打开设备相册并上传图片的功能。以下是示例代码: 1. 首先,安装相机插件: npm install @ionic-native/camera 2. 在app.module.ts导入相机插件: import { Camera } from '@ionic-native/camera/ngx'; @NgModule({ ... providers: [ ... Camera ... ] ... }) 3. 在需要使用相机的组件导入相机插件,并注入到构造函数: import { Camera, CameraOptions } from '@ionic-native/camera/ngx'; constructor(private camera: Camera) { } 4. 在需要打开相册的方法调用相机插件的getPicture()方法: openGallery() { const options: CameraOptions = { quality: 100, destinationType: this.camera.DestinationType.DATA_URL, sourceType: this.camera.PictureSourceType.PHOTOLIBRARY, encodingType: this.camera.EncodingType.JPEG, mediaType: this.camera.MediaType.PICTURE } this.camera.getPicture(options).then((imageData) => { // imageData is a base64 encoded string let base64Image = 'data:image/jpeg;base64,' + imageData; // 上传图片的代码 }, (err) => { console.log(err); }); } 5. 在上传图片的代码,将base64格式的图片数据发送到服务器即可。 注意:在使用相机插件之前,需要在config.xml文件添加以下权限: <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application"> <application android:requestLegacyExternalStorage="true" /> </edit-config> 这样才能在Android 10及以上版本的设备上正常使用相机和相册功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值