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.
    Create, Share, and Debug HTML pages and snippets with a cool new web app I helped create: pagedemos.com

  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

"

"

X vBulletin 4.2.2 Debug Information

  • Page Generation 0.12142 seconds
  • Memory Usage 2,857KB
  • Queries Executed 15 (?)
More Information
Template Usage (33):
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (1)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (3)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (70):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates