www.webdeveloper.com
Results 1 to 3 of 3

Thread: Mobile Phones: Using JavaScript to make snapshots via phone camera

  1. #1
    Join Date
    Nov 2012
    Location
    Baden-Wuerttemberg, the nice south of Germany
    Posts
    3

    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?

    Yours

    Danny

  2. #2
    Join Date
    Jul 2008
    Location
    urbana, il
    Posts
    2,787

    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.

  3. #3
    Join Date
    Nov 2012
    Location
    Baden-Wuerttemberg, the nice south of Germany
    Posts
    3
    Hi,

    many thanx for your help. This was the code I needed:

    var c = document.createElement("canvas");
    c.height= h;
    c.width= w;
    ctx.drawImage(v, 0, 0, w, h);

    It works fine! Thank you again.

    Thomas

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles