Skip to content

Instantly share code, notes, and snippets.

@dhavaln
Created March 29, 2012 14:33
Show Gist options
  • Save dhavaln/2238017 to your computer and use it in GitHub Desktop.
Save dhavaln/2238017 to your computer and use it in GitHub Desktop.
Phonegap Camera Capture Example
<!DOCTYPE html>
<html>
<head>
<title>Capture Photo</title>
<meta name="viewport" content="width=device-width,height=device-height,initial-scale=1"/>
<script type="text/javascript" charset="utf-8" src="js/phonegap.js"></script>
<script type="text/javascript" charset="utf-8">
var pictureSource; // picture source
var destinationType; // sets the format of returned value
// Wait for PhoneGap to connect with the device
//
document.addEventListener("deviceready",onDeviceReady,false);
// PhoneGap is ready to be used!
//
function onDeviceReady() {
pictureSource=navigator.camera.PictureSourceType;
destinationType=navigator.camera.DestinationType;
}
// Called when a photo is successfully retrieved
//
function onPhotoDataSuccess(imageData) {
// Get image handle
//
var smallImage = document.getElementById('smallImage');
// Unhide image elements
//
smallImage.style.display = 'block';
// Show the captured photo
// The inline CSS rules are used to resize the image
//
smallImage.src = "data:image/jpeg;base64," + imageData;
}
// Called when a photo is successfully retrieved
//
function onPhotoFileSuccess(imageData) {
// Get image handle
console.log(JSON.stringify(imageData));
// Get image handle
//
var smallImage = document.getElementById('smallImage');
// Unhide image elements
//
smallImage.style.display = 'block';
// Show the captured photo
// The inline CSS rules are used to resize the image
//
smallImage.src = imageData;
}
// Called when a photo is successfully retrieved
//
function onPhotoURISuccess(imageURI) {
// Uncomment to view the image file URI
// console.log(imageURI);
// Get image handle
//
var largeImage = document.getElementById('largeImage');
// Unhide image elements
//
largeImage.style.display = 'block';
// Show the captured photo
// The inline CSS rules are used to resize the image
//
largeImage.src = imageURI;
}
// A button will call this function
//
function capturePhotoWithData() {
// Take picture using device camera and retrieve image as base64-encoded string
navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50 });
}
function capturePhotoWithFile() {
navigator.camera.getPicture(onPhotoFileSuccess, onFail, { quality: 50, destinationType: Camera.DestinationType.FILE_URI });
}
// A button will call this function
//
function getPhoto(source) {
// Retrieve image file location from specified source
navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50,
destinationType: destinationType.FILE_URI,
sourceType: source });
}
// Called if something bad happens.
//
function onFail(message) {
alert('Failed because: ' + message);
}
</script>
</head>
<body>
<button onclick="capturePhotoWithData();">Capture Photo With Image Data</button> <br>
<button onclick="capturePhotoWithFile();">Capture Photo With Image File URI</button> <br>
<button onclick="getPhoto(pictureSource.PHOTOLIBRARY);">From Photo Library</button><br>
<button onclick="getPhoto(pictureSource.SAVEDPHOTOALBUM);">From Photo Album</button><br>
<img style="display:none;width:60px;height:60px;" id="smallImage" src="" />
<img style="display:none;" id="largeImage" src="" />
</body>
</html>
@dheeraj85
Copy link

How can i get phonegap.js file?

@john-ufmedia
Copy link

Just include phonegap.js, you don't require the actual file, this will be handled by the build process.

@joannalimbaga
Copy link

how to include phonegap.js?

@avinashinde2020
Copy link

fi you cannot find phonegap.js then include cordova.js. It works with cordova.js

@adamapps
Copy link

Awesome, thanks bro! Been looking for ever for a tutorial that worked but seemed like I kept getting ones with older api's, this worked perfectly, thanks again!

@Marykai
Copy link

Marykai commented Dec 1, 2014

Why this isn't working for me...?
Tells:
Uncaught ReferenceError: Camera is not defined at file:///android_asset/www/index.html:72

@spaceless00
Copy link

very good thanks

@rocky1138
Copy link

This is great. What's the license on this code?

@zaheer12
Copy link

Iam new in phonegap
when trying to use phonegap camera plugins get error.
Uncaught TypeError: cannot call method 'getpicture' of undefine at filename(index.html).
(using cordova-2.9.0)

@Sarbasish
Copy link

Not working in Android

@AmitLomte1
Copy link

I want to upload captured photo to server But that photo will be send from same page not again need to browse that pic from gallary and upload it please help me soon I am working on Phonegap desktop app

@gobisankar11
Copy link

smallImage.src =imagedata1;

        alert("data:image/jpeg;base64," + imageData);

        var sig="gobi";

        $.ajax("http://182.74.207.232:8080/timetracking/customerInfoStoringAndroid.do?cmd=saveclientdetails1&imagedata="+smallImage+"&sigdata="+sig).done(function(data) {
                                                                                                                                                          });


    }

alert("data:image/jpeg;base64," + imageData); not working and not getting string format for send server

@daksamedia
Copy link

is this works on phonegap build??

@NikitaPatel1
Copy link

Hi ,
I took this code and executed it on Ripple Simulator and it gives me an error phonegap.js not found(404 error)

I then replaced it to include Cordova.js and then it gives error Cordova_Plugin.js not found.

Can anyone please guide me.

Thanks in Advance.

@ngopal
Copy link

ngopal commented Aug 30, 2015

@NikitaPatel1 Have you added the camera plugin to your project? The command is "cordova plugin add cordova-plugin-camera" (as found in the docs: http://docs.phonegap.com/en/edge/cordova_camera_camera.md.html)

@sankari123
Copy link

I am having orientation problem. The captured photo is titlted towards right -90 deg

@Ganeshakumar
Copy link

Can anybody tell me, how to use zoom functionality here ?

@mrwebninja
Copy link

I am absolutely new to phonegap, not know how to use this camera.html
I am trying this with phonegap desktop
what I try put camera.html in www directory & in index.html give link to camera.html then open app in mobile using phonegap mobile app & by clicking link I go to camera.html, there is 4 buttons & none of them work
can anyone help me with this
Thanks

@zanurano
Copy link

get image data not show after capture..
why?

@Yjaballi
Copy link

Yjaballi commented Jun 3, 2016

Is this code really enough for acces camera.i just copied the code in index.html,is that it?

@henriqueweiand
Copy link

is possible choice photo on my library or catch a new image on camera with the same button?

@SerhiiOst
Copy link

It just doesn't work. I'm clicking on button and nothing happens. On browser it says:
Uncaught TypeError: Cannot read property 'getPicture' of undefined
at capturePhotoWithFile (index.html:74)
at HTMLButtonElement.onclick (index.html:94)

I installed cordova-plugin-camera using console command but it doesn't work anyway. Please help

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment