Mobile Phones: Using JavaScript to make snapshots via phone camera
Hi together,
Some months ago I developed a special php web application for mobile phones.
Our customers use Samsung Galaxy xcover with Android and Opera Mobile for browsing the application.
I use a JS functionality called "navigator.getUserMedia". I think it's very powerful, but there's something I'm missing.
Look: I use "navigator.getUserMedia" to give the end user the possibility to make snapshots and upload the images to my webserver directory.
And it works fine, really!
But - and that's my problem - I haven't found out how to change resolution of these phone snapshots.
I checked the whole JavaScript code if there's a possibility to define resolution information but without any luck.
I tried to change some JS code phrases to define and configure image resolution how I want and how I need them. But no success!
Now I'm not sure if it's generally a JS problem. Could it be that the "navigator.getUserMedia" functionality doesn't have the possibilities I need?
Is anybody there who had or has the same problem?
Did anybody solve it?
resize images client side using canvas and javascript to make a compressed jpeg image
Code:
function thumb(src, cb) {
var img = new Image, max=250 ;
img.onload = function() {
var v = img,
h = v.height,
w = v.width;
var oh = h,
ow = w;
if (w > max || h > max ) {
w = max ;
h = Math.floor( h / (ow/max ) );
}
var c = document.createElement("canvas");
c.height= h;
c.width= w;
var ctx = c.getContext("2d");
ctx.drawImage(v, 0, 0, w, h);
var i = new Image(w, h);
cb( c.toDataURL("image/jpeg", 0.25) );
};
img.src=src;
}
this function accepts an image url and a callback, to which a re-sized and compressed jpeg's data URL is passed.
I'm not sure how you got the bits to your server, but you can "rip" the data url using "".slice() + window.atob() to get the binary data if you need it.
i set the max dimension (w or h) to 250, feel free to customize to your constraints.
if you have image data and not a url, get a blob url to feed to the function using the window.URL class.
Bookmarks