【问题标题】:Phonegap - Camera taken photo always turns landscapePhonegap - 相机拍摄的照片总是变成风景
【发布时间】:2015-06-01 10:33:34
【问题描述】:

我可以使用 phonegap 文件上传脚本成功上传照片。但问题是当我拍摄一张纵向的照片并显示在缩略图中时,它会将照片转为横向,但是当您从图库中拾取时,它会显示为原样

<script>



    var deviceReady = false;

    /**
     * Take picture with camera
     */
    function takePicture() {
        navigator.camera.getPicture(
            function(uri) {
                var img = document.getElementById('camera_image');
                img.style.visibility = "visible";
                img.style.display = "block";
                img.src = uri;
                document.getElementById('camera_status').innerHTML = "Success";
            },
            function(e) {
                console.log("Error getting picture: " + e);
                document.getElementById('camera_status').innerHTML = "Error getting picture.";
            },
            { quality: 50, destinationType: navigator.camera.DestinationType.FILE_URI});
    };

    /**
     * Select picture from library
     */
    function selectPicture() {
        navigator.camera.getPicture(
            function(uri) {
                var img = document.getElementById('camera_image');
                img.style.visibility = "visible";
                img.style.display = "block";
                img.src = uri;
                document.getElementById('camera_status').innerHTML = "Success";
            },
            function(e) {
                console.log("Error getting picture: " + e);
                document.getElementById('camera_status').innerHTML = "Error getting picture.";
            },
            { quality: 50, destinationType: navigator.camera.DestinationType.FILE_URI, sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY});
    };

    /**
     * Upload current picture
     */
    function uploadPicture() {

        // Get URI of picture to upload
        var img = document.getElementById('camera_image');
        var imageURI = img.src;
        if (!imageURI || (img.style.display == "none")) {
            document.getElementById('camera_status').innerHTML = "Take picture or select picture from gallery";
            return;
        }

        // Verify server has been entered
        server = document.getElementById('serverUrl').value;
        if (server) {

           // Specify transfer options
            var options = new FileUploadOptions();
            randomizer = Math.floor((Math.random() * 1000000) + 1);
            options.fileKey="file";
            options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1)+randomizer+'.jpg';
            options.mimeType="image/jpeg";
            options.chunkedMode = false;




options.params = {
            filename: window.localStorage.setItem("key", options.fileName),


        }


            // Transfer picture to server
            var ft = new FileTransfer();
            ft.upload(imageURI, "http://myphonegap/pg_upload.php", function(r) {
        document.getElementById('camera_status').innerHTML = "Please wait redirecting"; 
        window.location.href = "source.html"            
            }, function(error) {
                document.getElementById('camera_status').innerHTML = "Upload failed: Code = "+error.code;               
            }, options);
        }
    }

    /**
     * View pictures uploaded to the server
     */
    function viewUploadedPictures() {

        // Get server URL
        server = document.getElementById('serverUrl').value;
        if (server) {

            // Get HTML that lists all pictures on server using XHR 
            var xmlhttp = new XMLHttpRequest();

            // Callback function when XMLHttpRequest is ready
            xmlhttp.onreadystatechange=function(){
                if(xmlhttp.readyState === 4){

                    // HTML is returned, which has pictures to display
                    if (xmlhttp.status === 200) {
                        document.getElementById('server_images').innerHTML = xmlhttp.responseText;
                    }

                    // If error
                    else {
                        document.getElementById('server_images').innerHTML = "Error retrieving pictures from server.";
                    }
                }
            };
            xmlhttp.open("GET", server , true);
            xmlhttp.send();         
        }   
    }

    /**
     * Function called when page has finished loading.
     */
    function init() {
        document.addEventListener("deviceready", function() {deviceReady = true;}, false);
        window.setTimeout(function() {
            if (!deviceReady) {
                alert("Error: PhoneGap did not initialize.  Demo will not run correctly.");
            }
        },2000);
    }



    </script>

【问题讨论】:

    标签: javascript android css cordova


    【解决方案1】:

    您是否在横向使用该应用程序?

    如果是这样,请尝试在 getPicture() 函数中将此选项添加到您的相机设置中:

    correctOrientation: false
    

    或者,如果您在纵向使用,请尝试将其设置为 true。它闻起来像一个错误,但这可能会解决它。

    您还在检查实际上传的图像吗?是不是方向不对?

    【讨论】:

    • 应用设置为仅在纵向模式下运行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多