从图片中拍摄的照片不会显示在 android 的科尔多瓦相机插件中的裁剪

Posted

技术标签:

【中文标题】从图片中拍摄的照片不会显示在 android 的科尔多瓦相机插件中的裁剪【英文标题】:Photos taken from pictures doesn't show on cropping in cordova camera plugin in android 【发布时间】:2016-10-19 04:47:36 【问题描述】:

使用camera cordova plugin 的裁剪选项不会显示从照片中拍摄的照片。但是,当我从图库中选择图像或从相机拍照时,会出现裁剪选项。

插件

cordova-plugin-camera 2.1.1

代码

 var options = 
            quality: 75,
            destinationType: Camera.DestinationType.DATA_URL,
            sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
            allowEdit: true,
            encodingType: Camera.EncodingType.JPEG,
            targetWidth: 300,
            targetHeight: 300,
            popoverOptions: CameraPopoverOptions,
            saveToPhotoAlbum: false
        ;
        $cordovaCamera.getPicture(options).then(function(imageData) 
        console.log('succes')
        , function(err) 
        console.log('succes')
        );

我真的需要一些帮助来解决这个问题。

【问题讨论】:

您使用的是哪个版本的cordova? cordova-plugin-camera 2.1.1 【参考方案1】:

您可以参考ngCordove - Camera。

你需要依赖注入 添加“ngCordova”,像这样。

app.js

angular.module('starter', ['ionic','ngCordova'])

camera.html

<ion-content>
    <div class="list">

        <div class="item item-thumbnail-right item-icon-right" ng-click="toCamera()">
            <img id="myImage" style="margin-right:50px;">
            <h2 class="positive">Camera</h2>
            <i class="icon ion-ios-arrow-right balanced"></i>
        </div>

    </div>
</ion-content>

controllers.js

app.controller('CameraCtrl', function ($scope, $cordovaCamera) 

$scope.toCamera = function () 
    var hideSheet = $ionicActionSheet.show(
        buttons: [
             text: 'Take a picture' ,
             text: 'Select a picture' 
        ],
        cancelText: 'Cancel',
        cancel: function () 
        ,
        buttonClicked: function (index) 
            console.log(index);
            if (index == '0') 
                document.addEventListener("deviceready", function () 
                    //take a picture
                    var options = 
                        quality: 100,
                        destinationType: Camera.DestinationType.DATA_URL,
                        sourceType: Camera.PictureSourceType.CAMERA,
                        allowEdit: true,
                        encodingType: Camera.EncodingType.JPEG,
                        targetWidth: 1280,
                        targetHeight: 720,
                        popoverOptions: CameraPopoverOptions,
                        saveToPhotoAlbum: true,
                        correctOrientation: true
                    ;
                    $cordovaCamera.getPicture(options).then(function (imageData) 
                        var image = document.getElementById('myImage');
                        image.src = "data:image/jpeg;base64," + imageData;
                    , function (err) 
                        // error
                    );
                , false);

             else if (index == '1') 
                document.addEventListener("deviceready", function () 
                    //Select a picture
                    var options = 
                        destinationType: Camera.DestinationType.FILE_URI,
                        sourceType: 2,     //set 0 or 2,is system picture
                        quality: 100,
                        allowEdit: true,
                        targetWidth: 1280,
                        targetHeight: 720
                    ;

                    $cordovaCamera.getPicture(options).then(function (imageURI) 
                        var image = document.getElementById('myImage');
                        image.src = imageURI;
                    , function (err) 
                        // error
                    );

                    //$cordovaCamera.cleanup().then(); // only for FILE_URI

                , false);
            
            return true;
        
    )
);

【讨论】:

当我从图库中选择图像或我从相机拍照但不是图片中的图像时出现裁剪选项 allowEdit:true改为false 抱歉,您能澄清一下您的问题吗?是你想要的。 就像我说的,如果从图库中选择任何图像,它会显示裁剪选项,但如果从照片或文件资源管理器中选择任何图像,它不会显示裁剪选项它直接影响图像 我知道你的意思。这是规格限制。请务必选择图库(android 原生应用程序)。相册应用是google应用,所以不支持。

以上是关于从图片中拍摄的照片不会显示在 android 的科尔多瓦相机插件中的裁剪的主要内容,如果未能解决你的问题,请参考以下文章

使用 Ionic 使用相机拍摄多张照片

显示从相机拍摄的照片:android.graphics.BitmapFactory.nativeDecodeStream(Native Method) 处的 java.lang.OutOfMemory

Android 拍摄照片后返回缩略图的两种方法详解

Android笔记67Android之使用系统中的相机功能(拍照保存照片显示拍摄的照片照片保存到图库等操作)

如何获取拍摄照片的创建日期?

Android调用相机拍摄照片并显示到 ImageView控件中