Click here to Skip to main content
15,896,269 members
Articles / Desktop Programming / Win32

Range Finder

Rate me:
Please Sign up or sign in to vote.
4.95/5 (94 votes)
30 Apr 2009CPOL9 min read 140.8K   7.9K   170  
A simple program to find real size or distance of objects in your digital camera photos
  • rangefinder_src7.zip
  • rangefinder_demo7.zip
    • Data
      • Camera.lst
      • canon_a470.gif
      • canon_a570is.gif
      • canon_a590is.gif
      • canon_a650is.gif
      • canon_a720is.gif
      • canon_eos1000d.gif
      • canon_eos1ds.gif
      • canon_eos30d.gif
      • canon_eos350d.gif
      • canon_eos400d.gif
      • canon_eos40d.gif
      • canon_eos450d.gif
      • canon_eos500d.gif
      • canon_eos5d.gif
      • canon_eos5dmarkii.gif
      • canon_g10.gif
      • canon_g7.gif
      • canon_g9.gif
      • canon_s5is.gif
      • canon_sx100is.gif
      • canon_sx10is.gif
      • canon_sx110is.gif
      • casio_exf1.gif
      • casio_exfh20.gif
      • fujifilm_s100fs.gif
      • kodak_dcs14n.gif
      • nikon_d3.gif
      • nikon_d40.gif
      • nikon_d5000.gif
      • nikon_d70.gif
      • nikon_d70s.gif
      • nikon_d80.gif
      • nikon_d90.gif
      • nikon_p5100.gif
      • olympus_sp560uz.gif
      • olympus_sp570uz.gif
      • panasonic_fz18.gif
      • panasonic_fz28.gif
      • panasonic_fz50.gif
      • pentax_k10d.gif
      • pentax_k20d.gif
      • samsung_gx20.gif
      • sigma_dp1.gif
      • sony_a350.gif
      • sony_h3.gif
      • sony_h7.gif
      • sony_h9.gif
      • RangeFinder.exe
  • cameralist.zip
  • add_ons2.zip
    • canon_a10.gif
    • canon_a100.gif
    • canon_a1000is.gif
    • canon_a1100is.gif
    • canon_a20.gif
    • canon_a200.gif
    • canon_a2000is.gif
    • canon_a2100is.gif
    • canon_a30.gif
    • canon_a300.gif
    • canon_a310.gif
    • canon_a40.gif
    • canon_a400.gif
    • canon_a410.gif
    • canon_a420.gif
    • canon_a430.gif
    • canon_a450.gif
    • canon_a460.gif
    • canon_a470.gif
    • canon_a480.gif
    • canon_a5.gif
    • canon_a50.gif
    • canon_a510.gif
    • canon_a520.gif
    • canon_a530.gif
    • canon_a540.gif
    • canon_a550.gif
    • canon_a560.gif
    • canon_a570is.gif
    • canon_a580.gif
    • canon_a590is.gif
    • canon_a5zoom.gif
    • canon_a60.gif
    • canon_a610.gif
    • canon_a620.gif
    • canon_a630.gif
    • canon_a640.gif
    • canon_a650is.gif
    • canon_a70.gif
    • canon_a700.gif
    • canon_a710is.gif
    • canon_a720is.gif
    • canon_a75.gif
    • canon_a80.gif
    • canon_a85.gif
    • canon_a95.gif
    • canon_d10.gif
    • canon_e1.gif
    • canon_eos1000d.gif
    • canon_eos10d.gif
    • canon_eos1d.gif
    • canon_eos1dmarkii.gif
    • canon_eos1dmarkiii.gif
    • canon_eos1dmarkiin.gif
    • canon_eos1ds.gif
    • canon_eos1dsmarkii.gif
    • canon_eos1dsmarkiii.gif
    • canon_eos20d.gif
    • canon_eos20da.gif
    • canon_eos300d.gif
    • canon_eos30d.gif
    • canon_eos350d.gif
    • canon_eos400d.gif
    • canon_eos40d.gif
    • canon_eos450d.gif
    • canon_eos500d.gif
    • canon_eos50d.gif
    • canon_eos5d.gif
    • canon_eos5dmarkii.gif
    • canon_eosd30.gif
    • canon_eosd60.gif
    • canon_g1.gif
    • canon_g10.gif
    • canon_g2.gif
    • canon_g3.gif
    • canon_g5.gif
    • canon_g6.gif
    • canon_g7.gif
    • canon_g9.gif
    • canon_pro1.gif
    • canon_pro70.gif
    • canon_pro90.gif
    • canon_s10.gif
    • canon_s100.gif
    • canon_s110.gif
    • canon_s1is.gif
    • canon_s20.gif
    • canon_s200.gif
    • canon_s230.gif
    • canon_s2is.gif
    • canon_s30.gif
    • canon_s300.gif
    • canon_s330.gif
    • canon_s3is.gif
    • canon_s40.gif
    • canon_s400.gif
    • canon_s410.gif
    • canon_s45.gif
    • canon_s50.gif
    • canon_s500.gif
    • canon_s5is.gif
    • canon_s60.gif
    • canon_s70.gif
    • canon_s80.gif
    • canon_sd10.gif
    • canon_sd100.gif
    • canon_sd1000.gif
    • canon_sd110.gif
    • canon_sd1100is.gif
    • canon_sd1200is.gif
    • canon_sd20.gif
    • canon_sd200.gif
    • canon_sd30.gif
    • canon_SD300.gif
    • canon_sd40.gif
    • canon_sd400.gif
    • canon_sd430wifi.gif
    • canon_sd450.gif
    • canon_sd500.gif
    • canon_sd550.gif
    • canon_sd600.gif
    • canon_sd630.gif
    • canon_sd700is.gif
    • canon_sd750.gif
    • canon_sd770is.gif
    • canon_sd780is.gif
    • canon_sd790is.gif
    • canon_sd800is.gif
    • canon_sd850is.gif
    • canon_sd870is.gif
    • canon_sd880is.gif
    • canon_sd890is.gif
    • canon_sd900.gif
    • canon_sd950is.gif
    • canon_sd960is.gif
    • canon_sd970is.gif
    • canon_sd990is.gif
    • canon_sx100is.gif
    • canon_sx10is.gif
    • canon_sx110is.gif
    • canon_sx1is.gif
    • canon_sx200is.gif
    • canon_tx1.gif
    • fujifilm_2800.gif
    • fujifilm_3800.gif
    • fujifilm_4900.gif
    • fujifilm_6900.gif
    • fujifilm_a150.gif
    • fujifilm_a205.gif
    • fujifilm_a350z.gif
    • fujifilm_ds260hd.gif
    • fujifilm_ds300.gif
    • fujifilm_e900z.gif
    • fujifilm_f20.gif
    • fujifilm_f200exr.gif
    • fujifilm_f31fd.gif
    • fujifilm_f480.gif
    • fujifilm_f60fd.gif
    • fujifilm_is1.gif
    • fujifilm_ispro.gif
    • fujifilm_j10.gif
    • fujifilm_j100.gif
    • fujifilm_j120.gif
    • fujifilm_mx2900z.gif
    • fujifilm_mx4700.gif
    • fujifilm_s1000fd.gif
    • fujifilm_s100fs.gif
    • fujifilm_s1500.gif
    • fujifilm_s1pro.gif
    • fujifilm_s2000hd.gif
    • fujifilm_s20pro.gif
    • fujifilm_s2pro.gif
    • fujifilm_s3000.gif
    • fujifilm_s3500.gif
    • fujifilm_s3pro.gif
    • fujifilm_s5000.gif
    • fujifilm_s5100.gif
    • fujifilm_s5200.gif
    • fujifilm_s5700.gif
    • fujifilm_s5pro.gif
    • fujifilm_s6000.gif
    • fujifilm_s602z.gif
    • fujifilm_s602zpro.gif
    • fujifilm_s7000.gif
    • fujifilm_s8000fd.gif
    • fujifilm_s8100fd.gif
    • fujifilm_s9000z.gif
    • fujifilm_s9100.gif
    • fujifilm_v10.gif
    • fujifilm_z1.gif
    • fujifilm_z10fd.gif
    • fujifilm_z2.gif
    • fujifilm_z20fd.gif
    • fujifilm_z3.gif
    • fujifilm_z33.gif
    • kodak_c1013.gif
    • kodak_c813.gif
    • kodak_c913.gif
    • kodak_dc260.gif
    • kodak_dc265.gif
    • kodak_dc3800.gif
    • kodak_dc4800.gif
    • kodak_dc5000.gif
    • kodak_dcs14n.gif
    • kodak_dcs315.gif
    • kodak_dcs330.gif
    • kodak_dcs460.gif
    • kodak_dcs520.gif
    • kodak_dcs560.gif
    • kodak_dcs620.gif
    • kodak_dcs620x.gif
    • kodak_dcs660.gif
    • kodak_dcs720x.gif
    • kodak_dcs760.gif
    • kodak_dx6490.gif
    • kodak_dx7590.gif
    • kodak_m1033.gif
    • kodak_m340.gif
    • kodak_m753.gif
    • kodak_m763.gif
    • kodak_m853.gif
    • kodak_p712.gif
    • kodak_P850.gif
    • kodak_P880.gif
    • kodak_slrc.gif
    • kodak_slrn.gif
    • kodak_v550.gif
    • kodak_z1012is.gif
    • kodak_z1015is.gif
    • kodak_z1085is.gif
    • kodak_z1275.gif
    • kodak_z1285.gif
    • kodak_z612.gif
    • kodak_Z650.gif
    • kodak_z700.gif
    • kodak_z710.gif
    • kodak_z712.gif
    • kodak_z730.gif
    • kodak_z740.gif
    • kodak_z7590.gif
    • kodak_z760.gif
    • kodak_z812.gif
    • kodak_z8612is.gif
    • kodak_z885.gif
    • leica_clux1.gif
    • leica_clux2.gif
    • leica_clux3.gif
    • leica_digilux.gif
    • leica_digilux1.gif
    • leica_digilux2.gif
    • leica_digilux3.gif
    • leica_digilux4.3.gif
    • leica_digiluxzoom.gif
    • leica_dlux2.gif
    • leica_dlux3.gif
    • leica_dlux4.gif
    • leica_m8.2.gif
    • leica_m8.gif
    • leica_vlux1.gif
    • nikon_d1.gif
    • nikon_d100.gif
    • nikon_d1h.gif
    • nikon_d1x.gif
    • nikon_d200.gif
    • nikon_d2h.gif
    • nikon_d2hs.gif
    • nikon_d2x.gif
    • nikon_d2xs.gif
    • nikon_d3.gif
    • nikon_d300.gif
    • nikon_d3x.gif
    • nikon_d40.gif
    • nikon_d40x.gif
    • nikon_d50.gif
    • nikon_d60.gif
    • nikon_d70.gif
    • nikon_d700.gif
    • nikon_d70s.gif
    • nikon_d80.gif
    • nikon_d90.gif
    • nikon_e100.gif
    • nikon_e2000.gif
    • nikon_e2100.gif
    • nikon_e2200.gif
    • nikon_e2500.gif
    • nikon_e300.gif
    • nikon_e3100.gif
    • nikon_e3200.gif
    • nikon_e3500.gif
    • nikon_e3700.gif
    • nikon_e4100.gif
    • nikon_e4200.gif
    • nikon_e4300.gif
    • nikon_e4500.gif
    • nikon_e4600.gif
    • nikon_e4800.gif
    • nikon_e5000.gif
    • nikon_e5200.gif
    • nikon_e5400.gif
    • nikon_e5600.gif
    • nikon_e5700.gif
    • nikon_e5900.gif
    • nikon_e600.gif
    • nikon_e700.gif
    • nikon_e7600.gif
    • nikon_e775.gif
    • nikon_e7900.gif
    • nikon_e800.gif
    • nikon_e8400.gif
    • nikon_e8700.gif
    • nikon_e880.gif
    • nikon_e8800.gif
    • nikon_e885.gif
    • nikon_e900.gif
    • nikon_e900s.gif
    • nikon_e950.gif
    • nikon_e990.gif
    • nikon_e995.gif
    • nikon_l1.gif
    • nikon_l10.gif
    • nikon_l100.gif
    • nikon_l11.gif
    • nikon_l12.gif
    • nikon_l14.gif
    • nikon_l15.gif
    • nikon_l16.gif
    • nikon_l18.gif
    • nikon_l19.gif
    • nikon_l2.gif
    • nikon_l20.gif
    • nikon_l3.gif
    • nikon_l4.gif
    • nikon_l5.gif
    • nikon_l6.gif
    • nikon_p1.gif
    • nikon_p2.gif
    • nikon_p3.gif
    • nikon_p4.gif
    • nikon_p50.gif
    • nikon_p5000.gif
    • nikon_p5100.gif
    • nikon_p60.gif
    • nikon_p6000.gif
    • nikon_p80.gif
    • nikon_p90.gif
    • nikon_s1.gif
    • nikon_s10.gif
    • nikon_s2.gif
    • nikon_s200.gif
    • nikon_s210.gif
    • nikon_s220.gif
    • nikon_s230.gif
    • nikon_s3.gif
    • nikon_s4.gif
    • nikon_s5.gif
    • nikon_s50.gif
    • nikon_s500.gif
    • nikon_s50c.gif
    • nikon_s51.gif
    • nikon_s510.gif
    • nikon_s51c.gif
    • nikon_s52.gif
    • nikon_s520.gif
    • nikon_s52c.gif
    • nikon_s550.gif
    • nikon_s560.gif
    • nikon_s6.gif
    • nikon_s60.gif
    • nikon_s600.gif
    • nikon_s610.gif
    • nikon_s610c.gif
    • nikon_s620.gif
    • nikon_s630.gif
    • nikon_s700.gif
    • nikon_s710.gif
    • nikon_s7c.gif
    • nikon_s9.gif
    • nikon_sq.gif
    • olympus_c1.gif
    • olympus_c100.gif
    • olympus_c120.gif
    • olympus_c1z.gif
    • olympus_c2.gif
    • olympus_c2000z.gif
    • olympus_c200z.gif
    • olympus_c2020z.gif
    • olympus_c2040z.gif
    • olympus_c21.gif
    • olympus_c2100uz.gif
    • olympus_c2500l.gif
    • olympus_c3000z.gif
    • olympus_c300z.gif
    • olympus_c3020z.gif
    • olympus_c3030z.gif
    • olympus_c3040z.gif
    • olympus_c4000z.gif
    • olympus_c4040z.gif
    • olympus_c40z.gif
    • olympus_c5000z.gif
    • olympus_c5050z.gif
    • olympus_c5060z.gif
    • olympus_c50z.gif
    • olympus_c5500sz.gif
    • olympus_c60z.gif
    • olympus_c7000z.gif
    • olympus_c700uz.gif
    • olympus_c7070wz.gif
    • olympus_c720uz.gif
    • olympus_c730uz.gif
    • olympus_c740uz.gif
    • olympus_c750uz.gif
    • olympus_c765uz.gif
    • olympus_c770uz.gif
    • olympus_c8080wz.gif
    • olympus_d200l.gif
    • olympus_d300l.gif
    • olympus_d340l.gif
    • olympus_d340r.gif
    • olympus_d360l.gif
    • olympus_d390.gif
    • olympus_d395.gif
    • olympus_d400z.gif
    • olympus_d425.gif
    • olympus_d435.gif
    • olympus_d450z.gif
    • olympus_d460z.gif
    • olympus_d490z.gif
    • olympus_d500l.gif
    • olympus_d520z.gif
    • olympus_d535z.gif
    • olympus_d540z.gif
    • olympus_d545z.gif
    • olympus_d560z.gif
    • olympus_d580z.gif
    • olympus_d595z.gif
    • olympus_d600l.gif
    • olympus_d620l.gif
    • olympus_d630z.gif
    • olympus_e1.gif
    • olympus_e10.gif
    • olympus_e100rs.gif
    • olympus_e20.gif
    • olympus_e3.gif
    • olympus_e30.gif
    • olympus_e300.gif
    • olympus_e330.gif
    • olympus_e400.gif
    • olympus_e410.gif
    • olympus_e420.gif
    • olympus_e450.gif
    • olympus_e500.gif
    • olympus_e510.gif
    • olympus_e520.gif
    • olympus_e620.gif
    • olympus_fe100.gif
    • olympus_fe110.gif
    • olympus_fe115.gif
    • olympus_fe120.gif
    • olympus_fe130.gif
    • olympus_fe140.gif
    • olympus_fe150.gif
    • olympus_fe170.gif
    • olympus_fe180.gif
    • olympus_fe190.gif
    • olympus_fe20.gif
    • olympus_fe200.gif
    • olympus_fe210.gif
    • olympus_fe230.gif
    • olympus_fe240.gif
    • olympus_fe250.gif
    • olympus_fe270.gif
    • olympus_fe280.gif
    • olympus_fe290.gif
    • olympus_fe300.gif
    • olympus_fe3000.gif
    • olympus_fe3010.gif
    • olympus_fe310.gif
    • olympus_fe340.gif
    • olympus_fe350.gif
    • olympus_fe360.gif
    • olympus_fe370.gif
    • olympus_fe45.gif
    • olympus_fe5000.gif
    • olympus_fe5010.gif
    • olympus_ir300.gif
    • olympus_mju300.gif
    • olympus_mju400.gif
    • olympus_sp310.gif
    • olympus_sp320.gif
    • olympus_sp350.gif
    • olympus_sp500.gif
    • olympus_sp510uz.gif
    • olympus_sp550uz.gif
    • olympus_sp560uz.gif
    • olympus_sp565uz.gif
    • olympus_sp570uz.gif
    • olympus_sp590uz.gif
    • olympus_sp700.gif
    • olympus_stylus1000.gif
    • olympus_stylus1010.gif
    • olympus_stylus1020.gif
    • olympus_stylus1030sw.gif
    • olympus_stylus1040.gif
    • olympus_stylus1050.gif
    • olympus_stylus1200.gif
    • olympus_stylus410.gif
    • olympus_stylus500.gif
    • olympus_stylus550wp.gif
    • olympus_stylus600.gif
    • olympus_stylus700.gif
    • olympus_stylus7000.gif
    • olympus_stylus720sw.gif
    • olympus_stylus725sw.gif
    • olympus_stylus730.gif
    • olympus_stylus740.gif
    • olympus_stylus750.gif
    • olympus_stylus760.gif
    • olympus_stylus770sw.gif
    • olympus_stylus780.gif
    • olympus_stylus790sw.gif
    • olympus_stylus800.gif
    • olympus_stylus810.gif
    • olympus_stylus820.gif
    • olympus_stylus830.gif
    • olympus_stylus840.gif
    • olympus_stylus850sw.gif
    • olympus_stylus9000.gif
    • olympus_stylusverve.gif
    • olympus_stylusverves.gif
    • olympus_tough6000.gif
    • olympus_tough8000.gif
    • panasonic_f7.gif
    • panasonic_fs15.gif
    • panasonic_fs20.gif
    • panasonic_fs25.gif
    • panasonic_fs3.gif
    • panasonic_fs5.gif
    • panasonic_fs6.gif
    • panasonic_fs7.gif
    • panasonic_fx01.gif
    • panasonic_fx07.gif
    • panasonic_fx1.gif
    • panasonic_fx10.gif
    • panasonic_fx100.gif
    • panasonic_fx12.gif
    • panasonic_fx150.gif
    • panasonic_fx2.gif
    • panasonic_fx3.gif
    • panasonic_fx30.gif
    • panasonic_fx33.gif
    • panasonic_fx35.gif
    • panasonic_fx37.gif
    • panasonic_fx48.gif
    • panasonic_fx5.gif
    • panasonic_fx50.gif
    • panasonic_fx500.gif
    • panasonic_fx55.gif
    • panasonic_fx580.gif
    • panasonic_fx7.gif
    • panasonic_fx8.gif
    • panasonic_fx9.gif
    • panasonic_fz1.gif
    • panasonic_fz10.gif
    • panasonic_fz18.gif
    • panasonic_fz2.gif
    • panasonic_fz20.gif
    • panasonic_fz28.gif
    • panasonic_fz3.gif
    • panasonic_fz30.gif
    • panasonic_fz4.gif
    • panasonic_fz5.gif
    • panasonic_fz50.gif
    • panasonic_fz7.gif
    • panasonic_fz8.gif
    • panasonic_g1.gif
    • panasonic_gh1.gif
    • panasonic_l1.gif
    • panasonic_l10.gif
    • panasonic_lc1.gif
    • panasonic_lc20.gif
    • panasonic_lc33.gif
    • panasonic_lc40.gif
    • panasonic_lc43.gif
    • panasonic_lc5.gif
    • panasonic_lc50.gif
    • panasonic_lc70.gif
    • panasonic_lc80.gif
    • panasonic_ls1.gif
    • panasonic_ls2.gif
    • panasonic_ls60.gif
    • panasonic_ls75.gif
    • panasonic_ls80.gif
    • panasonic_ls85.gif
    • panasonic_lx1.gif
    • panasonic_lx2.gif
    • panasonic_lx3.gif
    • panasonic_lz1.gif
    • panasonic_lz10.gif
    • panasonic_lz2.gif
    • panasonic_lz3.gif
    • panasonic_lz5.gif
    • panasonic_lz6.gif
    • panasonic_lz7.gif
    • panasonic_lz8.gif
    • panasonic_ts1.gif
    • panasonic_tz1.gif
    • panasonic_tz2.gif
    • panasonic_tz3.gif
    • panasonic_tz4.gif
    • panasonic_tz5.gif
    • panasonic_tz50.gif
    • panasonic_zs1.gif
    • panasonic_zs3.gif
    • pentax_30.gif
    • pentax_33l.gif
    • pentax_33lf.gif
    • pentax_33wr.gif
    • pentax_43wr.gif
    • pentax_50.gif
    • pentax_a10.gif
    • pentax_a20.gif
    • pentax_a30.gif
    • pentax_a40.gif
    • pentax_e10.gif
    • pentax_e20.gif
    • pentax_e30.gif
    • pentax_e40.gif
    • pentax_e50.gif
    • pentax_e60.gif
    • pentax_e70.gif
    • pentax_ei100.gif
    • pentax_ei200.gif
    • pentax_ei2000.gif
    • pentax_istd.gif
    • pentax_istdl.gif
    • pentax_istdl2.gif
    • pentax_istds.gif
    • pentax_istds2.gif
    • pentax_k100d.gif
    • pentax_k100dsuper.gif
    • pentax_k10d.gif
    • pentax_k110d.gif
    • pentax_k2000.gif
    • pentax_k200d.gif
    • pentax_k20d.gif
    • pentax_km.gif
    • pentax_m10.gif
    • pentax_m20.gif
    • pentax_m30.gif
    • pentax_m40.gif
    • pentax_m50.gif
    • pentax_m60.gif
    • pentax_mx4.gif
    • pentax_optio230.gif
    • pentax_optio330.gif
    • pentax_optio330gs.gif
    • pentax_optio330rs.gif
    • pentax_optio430.gif
    • pentax_optio430rs.gif
    • pentax_optio450.gif
    • pentax_optio550.gif
    • pentax_optio555.gif
    • pentax_optio60.gif
    • pentax_optio750z.gif
    • pentax_p70.gif
    • pentax_s.gif
    • pentax_s10.gif
    • pentax_s12.gif
    • pentax_s30.gif
    • pentax_s4.gif
    • pentax_s40.gif
    • pentax_s45.gif
    • pentax_s4i.gif
    • pentax_s50.gif
    • pentax_s55.gif
    • pentax_s5i.gif
    • pentax_s5n.gif
    • pentax_s5z.gif
    • pentax_s6.gif
    • pentax_s60.gif
    • pentax_s7.gif
    • pentax_sv.gif
    • pentax_svi.gif
    • pentax_t10.gif
    • pentax_t20.gif
    • pentax_t30.gif
    • pentax_v10.gif
    • pentax_v20.gif
    • pentax_w10.gif
    • pentax_w20.gif
    • pentax_w30.gif
    • pentax_w60.gif
    • pentax_wp.gif
    • pentax_wpi.gif
    • pentax_x.gif
    • pentax_x70.gif
    • pentax_z10.gif
    • ricoh_500g.gif
    • ricoh_500se.gif
    • ricoh_cx1.gif
    • ricoh_g3.gif
    • ricoh_g600.gif
    • ricoh_grdigital.gif
    • ricoh_grdigital2.gif
    • ricoh_grdigitalii.gif
    • ricoh_gx100.gif
    • ricoh_gx200.gif
    • ricoh_gx8.gif
    • ricoh_r10.gif
    • ricoh_r1v.gif
    • ricoh_r2.gif
    • ricoh_r3.gif
    • ricoh_r30.gif
    • ricoh_r4.gif
    • ricoh_r40.gif
    • ricoh_r5.gif
    • ricoh_r530.gif
    • ricoh_r6.gif
    • ricoh_r630.gif
    • ricoh_r7.gif
    • ricoh_r8.gif
    • ricoh_rdc200g.gif
    • ricoh_rdc4300.gif
    • ricoh_rdc5000.gif
    • ricoh_rdc5300.gif
    • ricoh_rdc6000.gif
    • ricoh_rdc7.gif
    • ricoh_rdci500.gif
    • ricoh_rdci700.gif
    • ricoh_rr1.gif
    • ricoh_rx.gif
    • sigma_dp1.gif
    • sigma_dp2.gif
    • sigma_sd10.gif
    • sigma_sd14.gif
    • sigma_sd15.gif
    • sigma_sd9.gif
    • sony_a100.gif
    • sony_a200.gif
    • sony_a300.gif
    • sony_a350.gif
    • sony_a700.gif
    • sony_a900.gif
    • sony_cd1000.gif
    • sony_cd200.gif
    • sony_cd250.gif
    • sony_cd300.gif
    • sony_cd350.gif
    • sony_cd400.gif
    • sony_cd500.gif
    • sony_d700.gif
    • sony_d770.gif
    • sony_f505.gif
    • sony_f505v.gif
    • sony_f55v.gif
    • sony_f707.gif
    • sony_f717.gif
    • sony_f828.gif
    • sony_f88.gif
    • sony_fd100.gif
    • sony_fd200.gif
    • sony_fd71.gif
    • sony_fd73.gif
    • sony_fd75.gif
    • sony_fd81.gif
    • sony_fd83.gif
    • sony_fd85.gif
    • sony_fd87.gif
    • sony_fd88.gif
    • sony_fd90.gif
    • sony_fd92.gif
    • sony_fd95.gif
    • sony_fd97.gif
    • sony_g1.gif
    • sony_g3.gif
    • sony_h1.gif
    • sony_h10.gif
    • sony_h2.gif
    • sony_h20.gif
    • sony_h3.gif
    • sony_h5.gif
    • sony_h50.gif
    • sony_h7.gif
    • sony_h9.gif
    • sony_hx1.gif
    • sony_l1.gif
    • sony_m1.gif
    • sony_m2.gif
    • sony_n1.gif
    • sony_n2.gif
    • sony_p1.gif
    • sony_p10.gif
    • sony_p100.gif
    • sony_p150.gif
    • sony_p2.gif
    • sony_p20.gif
    • sony_p200.gif
    • sony_p3.gif
    • sony_p30.gif
    • sony_p31.gif
    • sony_p32.gif
    • sony_p41.gif
    • sony_p5.gif
    • sony_p50.gif
    • sony_p51.gif
    • sony_p52.gif
    • sony_p7.gif
    • sony_p71.gif
    • sony_p72.gif
    • sony_p73.gif
    • sony_p8.gif
    • sony_p9.gif
    • sony_p92.gif
    • sony_p93.gif
    • sony_r1.gif
    • sony_s30.gif
    • sony_s40.gif
    • sony_s50.gif
    • sony_s60.gif
    • sony_s600.gif
    • sony_s650.gif
    • sony_s70.gif
    • sony_s700.gif
    • sony_s730.gif
    • sony_s75.gif
    • sony_s750.gif
    • sony_s780.gif
    • sony_s800.gif
    • sony_s85.gif
    • sony_s90.gif
    • sony_t1.gif
    • sony_t10.gif
    • sony_t100.gif
    • sony_t11.gif
    • sony_t2.gif
    • sony_t20.gif
    • sony_t200.gif
    • sony_t3.gif
    • sony_t30.gif
    • sony_t300.gif
    • sony_t33.gif
    • sony_t5.gif
    • sony_t50.gif
    • sony_t500.gif
    • sony_t7.gif
    • sony_t700.gif
    • sony_t77.gif
    • sony_t9.gif
    • sony_t90.gif
    • sony_t900.gif
    • sony_u10.gif
    • sony_u20.gif
    • sony_u30.gif
    • sony_u40.gif
    • sony_u50.gif
    • sony_u60.gif
    • sony_v1.gif
    • sony_v3.gif
    • sony_w1.gif
    • sony_w100.gif
    • sony_w110.gif
    • sony_w120.gif
    • sony_w130.gif
    • sony_w150.gif
    • sony_w170.gif
    • sony_w200.gif
    • sony_w220.gif
    • sony_w230.gif
    • sony_w290.gif
    • sony_w30.gif
    • sony_w300.gif
    • sony_w35.gif
    • sony_w5.gif
    • sony_w50.gif
    • sony_w55.gif
    • sony_w7.gif
    • sony_w70.gif
    • sony_w80.gif
    • sony_w90.gif
    • Readme.txt
  • Add_ons.zip
    • Camera.lst
    • canon_a1000is.gif
    • canon_a1100is.gif
    • canon_a2000is.gif
    • canon_a2100is.gif
    • canon_a450.gif
    • canon_a460.gif
    • canon_a470.gif
    • canon_a480.gif
    • canon_a550.gif
    • canon_a560.gif
    • canon_a570is.gif
    • canon_a580.gif
    • canon_a590is.gif
    • canon_a630.gif
    • canon_a640.gif
    • canon_a650is.gif
    • canon_a710is.gif
    • canon_a720is.gif
    • canon_d10.gif
    • canon_e1.gif
    • canon_eos1000d.gif
    • canon_eos10d.gif
    • canon_eos1d.gif
    • canon_eos1dmarkiii.gif
    • canon_eos1dmarkiin.gif
    • canon_eos1ds.gif
    • canon_eos1dsmarkii.gif
    • canon_eos1dsmarkiii.gif
    • canon_eos20d.gif
    • canon_eos20da.gif
    • canon_eos300d.gif
    • canon_eos30d.gif
    • canon_eos350d.gif
    • canon_eos400d.gif
    • canon_eos40d.gif
    • canon_eos450d.gif
    • canon_eos500d.gif
    • canon_eos50d.gif
    • canon_eos5d.gif
    • canon_eos5dmarkii.gif
    • canon_eosd30.gif
    • canon_eosd60.gif
    • canon_g1.gif
    • canon_g10.gif
    • canon_g2.gif
    • canon_g3.gif
    • canon_g5.gif
    • canon_g6.gif
    • canon_g7.gif
    • canon_g9.gif
    • canon_s1is.gif
    • canon_s2is.gif
    • canon_s3is.gif
    • canon_s5is.gif
    • canon_sd1000.gif
    • canon_sd1100is.gif
    • canon_sd1200is.gif
    • canon_sd40.gif
    • canon_sd750.gif
    • canon_sd770is.gif
    • canon_sd780is.gif
    • canon_sd790is.gif
    • canon_sd800is.gif
    • canon_sd850is.gif
    • canon_sd870is.gif
    • canon_sd880is.gif
    • canon_sd890is.gif
    • canon_sd900.gif
    • canon_sd950is.gif
    • canon_sd960is.gif
    • canon_sd970is.gif
    • canon_sd990is.gif
    • canon_sx100is.gif
    • canon_sx10is.gif
    • canon_sx110is.gif
    • canon_sx1is.gif
    • canon_sx200is.gif
    • canon_tx1.gif
    • casio_f1.gif
    • casio_fc100.gif
    • casio_fh20.gif
    • casio_fs10.gif
    • casio_s10.gif
    • casio_s12.gif
    • casio_s5.gif
    • casio_s600d.gif
    • casio_s880.gif
    • casio_v7.gif
    • casio_v8.gif
    • casio_z100.gif
    • casio_z1050.gif
    • casio_z1080.gif
    • casio_z1200.gif
    • casio_z200.gif
    • casio_z250.gif
    • casio_z270.gif
    • casio_z29.gif
    • casio_z300.gif
    • casio_z400.gif
    • casio_z70.gif
    • casio_z700.gif
    • casio_z75.gif
    • casio_z77.gif
    • casio_z770.gif
    • casio_z80.gif
    • casio_z85.gif
    • casio_z9.gif
    • fujifilm_a100.gif
    • fujifilm_a150.gif
    • fujifilm_a610.gif
    • fujifilm_a800.gif
    • fujifilm_a900.gif
    • fujifilm_a920.gif
    • fujifilm_f100fd.gif
    • fujifilm_f20.gif
    • fujifilm_f200exr.gif
    • fujifilm_f31fd.gif
    • fujifilm_f40fd.gif
    • fujifilm_f480.gif
    • fujifilm_f50fd.gif
    • fujifilm_f60fd.gif
    • fujifilm_is1.gif
    • fujifilm_ispro.gif
    • fujifilm_j10.gif
    • fujifilm_j100.gif
    • fujifilm_j110w.gif
    • fujifilm_j120.gif
    • fujifilm_j150w.gif
    • fujifilm_j50.gif
    • fujifilm_s1000fd.gif
    • fujifilm_s100fs.gif
    • fujifilm_s1500.gif
    • fujifilm_s2000hd.gif
    • fujifilm_s5.gif
    • fujifilm_s5700.gif
    • fujifilm_s6000.gif
    • fujifilm_s8000fd.gif
    • fujifilm_s8100fd.gif
    • fujifilm_s9100.gif
    • fujifilm_z100fd.gif
    • fujifilm_z10fd.gif
    • fujifilm_z200fd.gif
    • fujifilm_z20fd.gif
    • fujifilm_z3.gif
    • fujifilm_z33wp.gif
    • fujifilmi_a820.gif
    • kodak_c1013.gif
    • kodak_c433.gif
    • kodak_c513.gif
    • kodak_c613.gif
    • kodak_c653.gif
    • kodak_c713.gif
    • kodak_c743.gif
    • kodak_c763.gif
    • kodak_c813.gif
    • kodak_c875.gif
    • kodak_c913.gif
    • kodak_m1033.gif
    • kodak_m1063.gif
    • kodak_m1073is.gif
    • kodak_m1093is.gif
    • kodak_m340.gif
    • kodak_m753.gif
    • kodak_m763.gif
    • kodak_m853.gif
    • kodak_m863.gif
    • kodak_m873.gif
    • kodak_m883.gif
    • kodak_m893is.gif
    • kodak_p712.gif
    • kodak_v1003.gif
    • kodak_v1073.gif
    • kodak_v1233.gif
    • kodak_v1253.gif
    • kodak_v1273.gif
    • kodak_v705.gif
    • kodak_v803.gif
    • kodak_z1012is.gif
    • kodak_z1015is.gif
    • kodak_z1085is.gif
    • kodak_z1275.gif
    • kodak_z1285.gif
    • kodak_z710.gif
    • kodak_z712.gif
    • kodak_z812.gif
    • kodak_z8612is.gif
    • kodak_z885.gif
    • leica_clux2.gif
    • leica_clux3.gif
    • leica_digilux3.gif
    • leica_dlux3.gif
    • leica_dlux4.gif
    • leica_m8.2.gif
    • leica_m8.gif
    • leica_vlux1.gif
    • nikon_8400.gif
    • nikon_8700.gif
    • nikon_8800.gif
    • nikon_d1.gif
    • nikon_d100.gif
    • nikon_d1h.gif
    • nikon_d1x.gif
    • nikon_d200.gif
    • nikon_d2h.gif
    • nikon_d2hs.gif
    • nikon_d2x.gif
    • nikon_d2xs.gif
    • nikon_d3.gif
    • nikon_d300.gif
    • nikon_d3x.gif
    • nikon_d40.gif
    • nikon_d40x.gif
    • nikon_d50.gif
    • nikon_d60.gif
    • nikon_d70.gif
    • nikon_d700.gif
    • nikon_d70s.gif
    • nikon_d80.gif
    • nikon_d90.gif
    • nikon_l10.gif
    • nikon_l100.gif
    • nikon_l11.gif
    • nikon_l12.gif
    • nikon_l14.gif
    • nikon_l15.gif
    • nikon_l16.gif
    • nikon_l18.gif
    • nikon_l19.gif
    • nikon_l20.gif
    • nikon_l5.gif
    • nikon_l6.gif
    • nikon_p50.gif
    • nikon_p5000.gif
    • nikon_p5100.gif
    • nikon_p60.gif
    • nikon_p6000.gif
    • nikon_p80.gif
    • nikon_p90.gif
    • nikon_s10.gif
    • nikon_s200.gif
    • nikon_s210.gif
    • nikon_s220.gif
    • nikon_s230.gif
    • nikon_s50.gif
    • nikon_s500.gif
    • nikon_s50c.gif
    • nikon_s51.gif
    • nikon_s510.gif
    • nikon_s51c.gif
    • nikon_s52.gif
    • nikon_s520.gif
    • nikon_s52c.gif
    • nikon_s550.gif
    • nikon_s560.gif
    • nikon_s60.gif
    • nikon_s600.gif
    • nikon_s610.gif
    • nikon_s610c.gif
    • nikon_s620.gif
    • nikon_s630.gif
    • nikon_s700.gif
    • nikon_s710.gif
    • nikon_s7c.gif
    • nikon_s9.gif
    • olympus_e3.gif
    • olympus_e30.gif
    • olympus_e400.gif
    • olympus_e410.gif
    • olympus_e420.gif
    • olympus_e450.gif
    • olympus_e510.gif
    • olympus_e520.gif
    • olympus_e620.gif
    • olympus_fe170.gif
    • olympus_fe180.gif
    • olympus_fe190.gif
    • olympus_fe20.gif
    • olympus_fe200.gif
    • olympus_fe210.gif
    • olympus_fe230.gif
    • olympus_fe240.gif
    • olympus_fe250.gif
    • olympus_fe270.gif
    • olympus_fe280.gif
    • olympus_fe290.gif
    • olympus_fe300.gif
    • olympus_fe3000.gif
    • olympus_fe3010.gif
    • olympus_fe310.gif
    • olympus_fe340.gif
    • olympus_fe350.gif
    • olympus_fe360.gif
    • olympus_fe370.gif
    • olympus_fe45.gif
    • olympus_fe5000.gif
    • olympus_fe5010.gif
    • olympus_sp510uz.gif
    • olympus_sp550uz.gif
    • olympus_sp560uz.gif
    • olympus_sp565uz.gif
    • olympus_sp570uz.gif
    • olympus_sp590uz.gif
    • olympus_stylus1000.gif
    • olympus_stylus1010.gif
    • olympus_stylus1020.gif
    • olympus_stylus1030sw.gif
    • olympus_stylus1040.gif
    • olympus_stylus1050.gif
    • olympus_stylus1200.gif
    • olympus_stylus550wp.gif
    • olympus_stylus7000.gif
    • olympus_stylus725sw.gif
    • olympus_stylus730.gif
    • olympus_stylus740.gif
    • olympus_stylus750.gif
    • olympus_stylus760.gif
    • olympus_stylus770sw.gif
    • olympus_stylus780.gif
    • olympus_stylus790sw.gif
    • olympus_stylus820.gif
    • olympus_stylus830.gif
    • olympus_stylus840.gif
    • olympus_stylus850sw.gif
    • olympus_stylus9000.gif
    • olympus_tough6000.gif
    • olympus_tough8000.gif
    • panasonic_fs15.gif
    • panasonic_fs20.gif
    • panasonic_fs25.gif
    • panasonic_fs3.gif
    • panasonic_fs5.gif
    • panasonic_fs6.gif
    • panasonic_fs7.gif
    • panasonic_fx01.gif
    • panasonic_fx07.gif
    • panasonic_fx10.gif
    • panasonic_fx100.gif
    • panasonic_fx12.gif
    • panasonic_fx150.gif
    • panasonic_fx3.gif
    • panasonic_fx30.gif
    • panasonic_fx33.gif
    • panasonic_fx35.gif
    • panasonic_fx37.gif
    • panasonic_fx48.gif
    • panasonic_fx50.gif
    • panasonic_fx500.gif
    • panasonic_fx55.gif
    • panasonic_fx580.gif
    • panasonic_fz18.gif
    • panasonic_fz28.gif
    • panasonic_fz50.gif
    • panasonic_fz8.gif
    • panasonic_g1.gif
    • panasonic_gh1.gif
    • panasonic_l10.gif
    • panasonic_ls60.gif
    • panasonic_ls75.gif
    • panasonic_ls80.gif
    • panasonic_ls85.gif
    • panasonic_lx2.gif
    • panasonic_lx3.gif
    • panasonic_lz10.gif
    • panasonic_lz6.gif
    • panasonic_lz7.gif
    • panasonic_lz8.gif
    • panasonic_ts1.gif
    • panasonic_tz2.gif
    • panasonic_tz3.gif
    • panasonic_tz4.gif
    • panasonic_tz5.gif
    • panasonic_tz50.gif
    • panasonic_zs1.gif
    • panasonic_zs3.gif
    • pentax_a20.gif
    • pentax_a30.gif
    • pentax_a40.gif
    • pentax_e20.gif
    • pentax_e30.gif
    • pentax_e40.gif
    • pentax_e50.gif
    • pentax_e60.gif
    • pentax_e70.gif
    • pentax_k100d.gif
    • pentax_k100dsuper.gif
    • pentax_k10d.gif
    • pentax_k110d.gif
    • pentax_k2000.gif
    • pentax_k200d.gif
    • pentax_k20d.gif
    • pentax_m20.gif
    • pentax_m30.gif
    • pentax_m40.gif
    • pentax_m50.gif
    • pentax_m60.gif
    • pentax_p70.gif
    • pentax_s10.gif
    • pentax_s12.gif
    • pentax_s7.gif
    • pentax_t20.gif
    • pentax_t30.gif
    • pentax_v10.gif
    • pentax_v20.gif
    • pentax_w20.gif
    • pentax_w30.gif
    • pentax_w60.gif
    • pentax_x70.gif
    • pentax_z10.gif
    • ricoh_cx1.gif
    • ricoh_g600.gif
    • ricoh_grdigitalii.gif
    • ricoh_gx100.gif
    • ricoh_gx200.gif
    • ricoh_r10.gif
    • ricoh_r40.gif
    • ricoh_r5.gif
    • ricoh_r6.gif
    • ricoh_r7.gif
    • ricoh_r8.gif
    • samsung_gx10.gif
    • samsung_gx20.gif
    • samsung_hz10w.gif
    • samsung_hz15w.gif
    • samsung_i100.gif
    • samsung_i7.gif
    • samsung_i70.gif
    • samsung_i8.gif
    • samsung_i80.gif
    • samsung_i85.gif
    • samsung_l100.gif
    • samsung_l110.gif
    • samsung_l201.gif
    • samsung_l210.gif
    • samsung_l310w.gif
    • samsung_l700.gif
    • samsung_l73.gif
    • samsung_l730.gif
    • samsung_l74.gif
    • samsung_l77.gif
    • samsung_l830.gif
    • samsung_l83t.gif
    • samsung_nv10.gif
    • samsung_nv100hd.gif
    • samsung_nv11.gif
    • samsung_nv15.gif
    • samsung_nv20.gif
    • samsung_nv24hd.gif
    • samsung_nv3.gif
    • samsung_nv30.gif
    • samsung_nv4.gif
    • samsung_nv40.gif
    • samsung_nv7.gif
    • samsung_nv8.gif
    • samsung_nv9.gif
    • samsung_s1030.gif
    • samsung_s1050.gif
    • samsung_s1070.gif
    • samsung_s630.gif
    • samsung_s730.gif
    • samsung_s760.gif
    • samsung_s830.gif
    • samsung_s85.gif
    • samsung_s850.gif
    • samsung_s860.gif
    • samsung_sl102.gif
    • samsung_st10.gif
    • samsung_tl100.gif
    • samsung_tl320.gif
    • sigma_dp1.gif
    • sigma_dp2.gif
    • sigma_sd14.gif
    • sigma_sd15.gif
    • sony_a100.gif
    • sony_a200.gif
    • sony_a300.gif
    • sony_a350.gif
    • sony_a700.gif
    • sony_a900.gif
    • sony_g1.gif
    • sony_g3.gif
    • sony_h10.gif
    • sony_h20.gif
    • sony_h3.gif
    • sony_h50.gif
    • sony_h7.gif
    • sony_h9.gif
    • sony_hx1.gif
    • sony_n2.gif
    • sony_s650.gif
    • sony_s700.gif
    • sony_s730.gif
    • sony_s750.gif
    • sony_s780.gif
    • sony_s800.gif
    • sony_t10.gif
    • sony_t100.gif
    • sony_t2.gif
    • sony_t20.gif
    • sony_t200.gif
    • sony_t300.gif
    • sony_t50.gif
    • sony_t500.gif
    • sony_t700.gif
    • sony_t77.gif
    • sony_t90.gif
    • sony_t900.gif
    • sony_w110.gif
    • sony_w120.gif
    • sony_w130.gif
    • sony_w150.gif
    • sony_w170.gif
    • sony_w200.gif
    • sony_w220.gif
    • sony_w230.gif
    • sony_w290.gif
    • sony_w300.gif
    • sony_w35.gif
    • sony_w55.gif
    • sony_w80.gif
    • sony_w90.gif
    • Readme.txt
  • Rangefinder_demo.zip
    • Camera.lst
    • canon_a470.gif
    • canon_a570is.gif
    • canon_a590is.gif
    • canon_a650is.gif
    • canon_a720is.gif
    • canon_eos1000d.gif
    • canon_eos1ds.gif
    • canon_eos30d.gif
    • canon_eos350d.gif
    • canon_eos400d.gif
    • canon_eos40d.gif
    • canon_eos450d.gif
    • canon_eos500d.gif
    • canon_eos5d.gif
    • canon_eos5dmarkii.gif
    • canon_g10.gif
    • canon_g7.gif
    • canon_g9.gif
    • canon_s5is.gif
    • canon_sx100is.gif
    • canon_sx10is.gif
    • canon_sx110is.gif
    • casio_exf1.gif
    • casio_exfh20.gif
    • fujifilm_s100fs.gif
    • nikon_d3.gif
    • nikon_d40.gif
    • nikon_d70.gif
    • nikon_d70s.gif
    • nikon_d80.gif
    • nikon_d90.gif
    • nikon_p5100.gif
    • olympus_sp560uz.gif
    • olympus_sp570uz.gif
    • panasonic_fz18.gif
    • panasonic_fz28.gif
    • samsung_gx20.gif
    • sony_a350.gif
    • sony_h3.gif
    • sony_h7.gif
    • sony_h9.gif
    • RangeFinder.exe
  • Rangefinder_demo2.zip
    • Camera.lst
    • canon_a470.gif
    • canon_a570is.gif
    • canon_a590is.gif
    • canon_a650is.gif
    • canon_a720is.gif
    • canon_eos1000d.gif
    • canon_eos1ds.gif
    • canon_eos30d.gif
    • canon_eos350d.gif
    • canon_eos400d.gif
    • canon_eos40d.gif
    • canon_eos450d.gif
    • canon_eos500d.gif
    • canon_eos5d.gif
    • canon_eos5dmarkii.gif
    • canon_g10.gif
    • canon_g7.gif
    • canon_g9.gif
    • canon_s5is.gif
    • canon_sx100is.gif
    • canon_sx10is.gif
    • canon_sx110is.gif
    • casio_exf1.gif
    • casio_exfh20.gif
    • fujifilm_s100fs.gif
    • nikon_d3.gif
    • nikon_d40.gif
    • nikon_d70.gif
    • nikon_d70s.gif
    • nikon_d80.gif
    • nikon_d90.gif
    • nikon_p5100.gif
    • olympus_sp560uz.gif
    • olympus_sp570uz.gif
    • panasonic_fz18.gif
    • panasonic_fz28.gif
    • samsung_gx20.gif
    • sony_a350.gif
    • sony_h3.gif
    • sony_h7.gif
    • sony_h9.gif
    • RangeFinder.exe
  • Rangefinder_demo3.zip
    • Camera.lst
    • canon_a470.gif
    • canon_a570is.gif
    • canon_a590is.gif
    • canon_a650is.gif
    • canon_a720is.gif
    • canon_eos1000d.gif
    • canon_eos1ds.gif
    • canon_eos30d.gif
    • canon_eos350d.gif
    • canon_eos400d.gif
    • canon_eos40d.gif
    • canon_eos450d.gif
    • canon_eos500d.gif
    • canon_eos5d.gif
    • canon_eos5dmarkii.gif
    • canon_g10.gif
    • canon_g7.gif
    • canon_g9.gif
    • canon_s5is.gif
    • canon_sx100is.gif
    • canon_sx10is.gif
    • canon_sx110is.gif
    • casio_exf1.gif
    • casio_exfh20.gif
    • fujifilm_s100fs.gif
    • nikon_d3.gif
    • nikon_d40.gif
    • nikon_d70.gif
    • nikon_d70s.gif
    • nikon_d80.gif
    • nikon_d90.gif
    • nikon_p5100.gif
    • olympus_sp560uz.gif
    • olympus_sp570uz.gif
    • panasonic_fz18.gif
    • panasonic_fz28.gif
    • samsung_gx20.gif
    • sony_a350.gif
    • sony_h3.gif
    • sony_h7.gif
    • sony_h9.gif
    • RangeFinder.exe
  • Rangefinder_demo4.zip
    • Camera.lst
    • canon_a470.gif
    • canon_a570is.gif
    • canon_a590is.gif
    • canon_a650is.gif
    • canon_a720is.gif
    • canon_eos1000d.gif
    • canon_eos1ds.gif
    • canon_eos30d.gif
    • canon_eos350d.gif
    • canon_eos400d.gif
    • canon_eos40d.gif
    • canon_eos450d.gif
    • canon_eos500d.gif
    • canon_eos5d.gif
    • canon_eos5dmarkii.gif
    • canon_g10.gif
    • canon_g7.gif
    • canon_g9.gif
    • canon_s5is.gif
    • canon_sx100is.gif
    • canon_sx10is.gif
    • canon_sx110is.gif
    • casio_exf1.gif
    • casio_exfh20.gif
    • fujifilm_s100fs.gif
    • nikon_d3.gif
    • nikon_d40.gif
    • nikon_d70.gif
    • nikon_d70s.gif
    • nikon_d80.gif
    • nikon_d90.gif
    • nikon_p5100.gif
    • olympus_sp560uz.gif
    • olympus_sp570uz.gif
    • panasonic_fz18.gif
    • panasonic_fz28.gif
    • samsung_gx20.gif
    • sony_a350.gif
    • sony_h3.gif
    • sony_h7.gif
    • sony_h9.gif
    • RangeFinder.exe
  • Rangefinder_demo5.zip
    • Camera.lst
    • canon_a470.gif
    • canon_a570is.gif
    • canon_a590is.gif
    • canon_a650is.gif
    • canon_a720is.gif
    • canon_eos1000d.gif
    • canon_eos1ds.gif
    • canon_eos30d.gif
    • canon_eos350d.gif
    • canon_eos400d.gif
    • canon_eos40d.gif
    • canon_eos450d.gif
    • canon_eos500d.gif
    • canon_eos5d.gif
    • canon_eos5dmarkii.gif
    • canon_g10.gif
    • canon_g7.gif
    • canon_g9.gif
    • canon_s5is.gif
    • canon_sx100is.gif
    • canon_sx10is.gif
    • canon_sx110is.gif
    • casio_exf1.gif
    • casio_exfh20.gif
    • fujifilm_s100fs.gif
    • kodak_dcs14n.gif
    • nikon_d3.gif
    • nikon_d40.gif
    • nikon_d70.gif
    • nikon_d70s.gif
    • nikon_d80.gif
    • nikon_d90.gif
    • nikon_p5100.gif
    • olympus_sp560uz.gif
    • olympus_sp570uz.gif
    • panasonic_fz18.gif
    • panasonic_fz28.gif
    • panasonic_fz50.gif
    • pentax_k10d.gif
    • pentax_k20d.gif
    • samsung_gx20.gif
    • sigma_dp1.gif
    • sony_a350.gif
    • sony_h3.gif
    • sony_h7.gif
    • sony_h9.gif
    • RangeFinder.exe
  • Rangefinder_demo6.zip
    • Camera.lst
    • canon_a470.gif
    • canon_a570is.gif
    • canon_a590is.gif
    • canon_a650is.gif
    • canon_a720is.gif
    • canon_eos1000d.gif
    • canon_eos1ds.gif
    • canon_eos30d.gif
    • canon_eos350d.gif
    • canon_eos400d.gif
    • canon_eos40d.gif
    • canon_eos450d.gif
    • canon_eos500d.gif
    • canon_eos5d.gif
    • canon_eos5dmarkii.gif
    • canon_g10.gif
    • canon_g7.gif
    • canon_g9.gif
    • canon_s5is.gif
    • canon_sx100is.gif
    • canon_sx10is.gif
    • canon_sx110is.gif
    • casio_exf1.gif
    • casio_exfh20.gif
    • fujifilm_s100fs.gif
    • kodak_dcs14n.gif
    • nikon_d3.gif
    • nikon_d40.gif
    • nikon_d70.gif
    • nikon_d70s.gif
    • nikon_d80.gif
    • nikon_d90.gif
    • nikon_p5100.gif
    • olympus_sp560uz.gif
    • olympus_sp570uz.gif
    • panasonic_fz18.gif
    • panasonic_fz28.gif
    • panasonic_fz50.gif
    • pentax_k10d.gif
    • pentax_k20d.gif
    • samsung_gx20.gif
    • sigma_dp1.gif
    • sony_a350.gif
    • sony_h3.gif
    • sony_h7.gif
    • sony_h9.gif
    • RangeFinder.exe
  • Rangefinder_src.zip
  • Rangefinder_src2.zip
  • Rangefinder_src3.zip
  • Rangefinder_src4.zip
  • Rangefinder_src5.zip
  • Rangefinder_src6.zip
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Text;
using System.Windows.Forms;

namespace RangeFinder
{
    public partial class frmMain : Form
    {
        #region Data definition 

        private float myZoom = 1;
        private int startX = 0;
        private int startY = 0;
        private int movedX = 0;
        private int movedY = 0;
        private double myMeasure = 0;
        private double mySize = 0;
        private double myDistance = 0;
        private double mySizeScale = .01;
        private double myDistanceScale = 1;
        private int myMeasureStartX = 0;
        private int myMeasureStartY = 0;
        private bool horiZontal = true;
        private Bitmap myBitmap;

        class Camera
        {
            internal string Factory="";
            internal string Model = "";
            internal string AliasName = "";
            internal string SensorType = "";
            internal float SensorWidth = 0;
            internal float SensorHeight = 0;
        }
        private List<Camera> allCameraInfo=new List<Camera> ();

        #endregion

        #region Loading  all Cameras info

        public frmMain()
        {
            InitializeComponent();
            loadCameraInfo();
        }

        private void loadCameraInfo()
        {
            // Open the file 
            string dataFile=Application.StartupPath +"\\Data\\camera.lst";
            if (System.IO.File.Exists(dataFile))
            {
                using (System.IO.StreamReader sr = System.IO.File.OpenText(dataFile))
                {
                    string myLine = "";
                    while ((myLine = sr.ReadLine()) != null)
                    {
                        if (!myLine.StartsWith("//") && myLine.Trim() != "")
                        {
                            string[] myData;
                            myData = myLine.Split(new string[] { "," }, StringSplitOptions.None);
                            try
                            {
                                //Add Camera information to list collection
                                Camera myCameraInfo = new Camera();
                                myCameraInfo.Factory = myData[0].Trim ();
                                myCameraInfo.Model = myData[1].Trim ();
                                myCameraInfo.AliasName = myData[2].Trim ();
                                myCameraInfo.SensorType = myData[3].Trim();
                                myCameraInfo.SensorWidth = Convert.ToSingle(myData[4]);
                                myCameraInfo.SensorHeight = Convert.ToSingle(myData[5]);
                                allCameraInfo.Add(myCameraInfo);

                                //Add  Camera manufacture to the menu
                                bool newFactory = true;
                                foreach (ToolStripMenuItem  mi in mnuCamera.DropDownItems )
                                {
                                    if (mi.Text.Contains(myCameraInfo.Factory)) newFactory = false;
                                }
                                if (newFactory)mnuCamera.DropDownItems.Add(myCameraInfo.Factory);

                                // Add cameral model to the menu
                                foreach (ToolStripMenuItem mi in mnuCamera.DropDownItems)
                                {
                                    if (mi.Text.Contains(myCameraInfo.Factory)) mi.DropDownItems.Add(myCameraInfo.Model + (myCameraInfo.AliasName == "" ? "" : " - " + myCameraInfo.AliasName ),null, mnuCamera_Click);
                                }
                            }
                            catch (Exception ) { }
                        }
                    }
                }
            }
        }

        #endregion

        #region Redraw main picture when loading a new picture, moving, zooming ...

        private void frmMain_Load(object sender, EventArgs e)
        {
            RePaint();
        }


        private void frmMain_Resize(object sender, EventArgs e)
        {
            RePaint();

        }

        private void RePaint()
        {
            try
            {
                myBitmap = new Bitmap(picMain.Width, picMain.Height);
                Graphics g = Graphics.FromImage(myBitmap);
                g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

                g.DrawImage(picSmall.Image,
                    new Rectangle(0, 0, picMain.Width, picMain.Height),
                    new Rectangle(startX, startY, (int)(picMain.Width * myZoom), (int)(picMain.Height * myZoom)),
                    GraphicsUnit.Pixel);

                picMain.Image = myBitmap;
            }
            catch (Exception) {}

        }

        #endregion


        #region Mouse control for moving, selecting, or measuring some parts of image

        private void picSmall_MouseDown(object sender, MouseEventArgs e)
        {
            try
            {
                startX = picSmall.Image.Width * e.X / picSmall.Width;
                startY = picSmall.Image.Height * e.Y / picSmall.Height;
                RePaint();
            }
            catch (Exception) { }
        }

        private void picMain_MouseDown(object sender, MouseEventArgs e)
        {
            if (tsbMove.Checked)
            {
                movedX = e.X;
                movedY = e.Y;
            }
            else
            {
                myMeasureStartX = e.X;
                myMeasureStartY = e.Y;
            }

        }

        private void picMain_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                if (tsbMove.Checked)
                {
                    startX -= e.X - movedX;
                    if (startX < 0) startX = 0;
                    startY -= e.Y - movedY;
                    if (startY < 0) startY = 0;
                    movedX = e.X;
                    movedY = e.Y;

                    RePaint();
                }
                else
                {
                    try
                    {
                        // measuring the selected part size on the sensor
                        double xDiff = Math.Abs(myMeasureStartX - e.X) * myZoom * Convert.ToSingle(txtSensorWidth.Text) / Convert.ToSingle(horiZontal ? txtPicWidth.Text : txtPicHeight.Text);
                        double yDiff = Math.Abs(myMeasureStartY - e.Y) * myZoom * Convert.ToSingle(txtSensorHeight.Text) / Convert.ToSingle(horiZontal ? txtPicHeight.Text : txtPicWidth.Text);
                        myMeasure = Math.Pow((Math.Pow(xDiff, 2) + Math.Pow(yDiff, 2)), .5);
                        tssStatusM.Text = "Size on sensor (mm):" + myMeasure.ToString();
                        
                        // Drawing a red line to show the size of your selection
                        picMain.Refresh();
                        Graphics g = picMain.CreateGraphics();
                        g.ResetClip();
                        g.DrawLine(new Pen(Color.Red), myMeasureStartX, myMeasureStartY, e.X, e.Y);
                    }
                    catch (Exception) { }

                }
            }

            try
            {
                float  Xp = startX + e.X * myZoom;
                float  Yp = startY + e.Y * myZoom;
                float Xm = Xp * Convert.ToSingle(txtSensorWidth.Text) / Convert.ToSingle(horiZontal ? txtPicWidth.Text : txtPicHeight.Text);
                float Ym = Yp * Convert.ToSingle(txtSensorHeight.Text) / Convert.ToSingle(horiZontal ? txtPicHeight.Text:txtPicWidth.Text);
                tssStatusP.Text = "Position on file (pixel) X:" + Xp.ToString() + "  Y:" + Yp.ToString();
                tssStatusS.Text= "Position on sensor (mm) X:" + Xm.ToString() + "  Y:" + Ym.ToString();
            }
            catch (Exception) { }
        }


        #endregion


        #region Loading new picture from hard disk and reading  Exif info

        private void mnuOpen_Click(object sender, EventArgs e)
        {
            openFileDialog1.FileName = "";
            openFileDialog1 .Filter = "All Files|*.*|JPG|*.jpg";
            openFileDialog1 .RestoreDirectory = true;
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    // Load image
                    Image myImage = Image.FromFile(openFileDialog1.FileName);
                    picSmall.Image = myImage;

                    // reset Data of controls
                    trbZoom.Value = 50;
                    startX = 0;
                    startY = 0;
                    tstDistance.Text = "";
                    tstSize.Text = "";
                    tssStatusM.Text = "Size on sensor (mm):";
                    tssStatusP.Text = "Position on file (pixel):";
                    tssStatusS.Text = "Position on sensor (mm):";
                    txtPicFL.Text = "";
                    txtPicWidth.Text = "";
                    txtPicHeight.Text = "";
                    txtCameraFactory.Text = "";
                    setZoom();


                    // Get the picture information from the inside of file (EXIF information)
                    PropertyItem myProperty = myImage.GetPropertyItem(37386);
                    byte[] l = new byte[myProperty.Len / 2];
                    byte[] h = new byte[myProperty.Len / 2];
                    Array.Copy(myProperty.Value, 0, l, 0, myProperty.Len / 2);
                    Array.Copy(myProperty.Value, myProperty.Len / 2, h, 0, myProperty.Len / 2);

                    txtPicFL.Text = Convert.ToString((float)convertToInt32U(l) / convertToInt32U(h));

                    txtPicWidth.Text = myImage.PhysicalDimension.Width.ToString();
                    txtPicHeight.Text = myImage.PhysicalDimension.Height.ToString();
                    if (myImage.PhysicalDimension.Width > myImage.PhysicalDimension.Height) horiZontal = true;
                    else horiZontal = false;

                    Encoding myAscii = Encoding.ASCII;
                    string thisFactory = myAscii.GetString(myImage.GetPropertyItem(271).Value).Replace("\0", "\r\n");
                    thisFactory += myAscii.GetString(myImage.GetPropertyItem(272).Value);
                    txtCameraFactory.Text = thisFactory;//changing of this text box value activate procedure to find camera picture and info

                    this.Text = "RangeFinder" + " - " + openFileDialog1.FileName;
                }
                catch (Exception) { }
            }
        }

        uint convertToInt32U(byte[] myArray)
        {
            if (myArray.Length != 4)
                return 0;
            else
                return Convert.ToUInt32(myArray[3] << 24 | myArray[2] << 16 | myArray[1] << 8 | myArray[0]);
        }




        private void txtCameraFactory_TextChanged(object sender, EventArgs e)
        {
            cameraSerach();
        }

        //Finding camera info and picture
        private void cameraSerach()
        {
            txtSensorHeight.Text = "";
            txtSensorWidth.Text = "";
            txtSensorType.Text = "";
            picCamera.Image = Properties.Resources.noPhoto;
            toolTip1.SetToolTip(picCamera, "");

            string camControl = "MRK";// this is for preventing finding camera names like D300 instead of D3 
            string camName = txtCameraFactory.Text.Replace(" ", "").Replace("-", "").ToLower() + camControl;
            bool camFound = false;
            byte camLoop = 0;
            do
            {
                foreach (Camera thisCamera in allCameraInfo)
                {
                    if (camName.Contains(thisCamera.Factory.Replace(" ", "").ToLower()) && !camFound )
                    {
                        if (camName.Contains(thisCamera.Model.Replace(" ", "").Replace("-", "").ToLower() + camControl) || (camName.Contains(thisCamera.AliasName.Replace(" ", "").Replace("-", "").ToLower() + camControl) && thisCamera.AliasName != ""))
                        {
                            txtSensorType.Text = thisCamera.SensorType;
                            txtSensorWidth.Text = thisCamera.SensorWidth.ToString();
                            txtSensorHeight.Text = thisCamera.SensorHeight.ToString();
                            toolTip1.SetToolTip(picCamera, thisCamera.Factory + " " + thisCamera.Model);
                            string picFile = Application.StartupPath + "\\Data\\" + thisCamera.Factory + "_" + thisCamera.Model.Replace(" ", "").Replace("-", "") + ".gif";
                            if (System.IO.File.Exists(picFile)) picCamera.Image = Image.FromFile(picFile);

                            camFound = true;
                        }
                    }
                }
                camControl = "";
                camLoop++;
            } while (!camFound && camLoop < 2);
        }

        #endregion



        # region Menu Items


        private void mnuExit_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void mnuAbout_Click(object sender, EventArgs e)
        {
            frmAbout myAbout = new frmAbout();
            myAbout.ShowDialog();
            myAbout.Dispose();
        }

        // select a camera manually. Especially when your file doesn�t have EXIF information
        private void mnuCamera_Click(object sender, EventArgs e)
        {
            txtCameraFactory.Text = ((ToolStripItem)sender).OwnerItem.Text;
            txtCameraFactory.Text += "\r\n" + ((ToolStripItem)sender).OwnerItem.Text + " " + ((ToolStripItem)sender).Text;
        }


        #endregion


        #region Calculating 35 mm lens equivalent

        private void txtPicFL_TextChanged(object sender, EventArgs e)
        {
            string myEquivalent = "";
            try
            {
                double  eq =Math.Pow ( (Math.Pow(Convert.ToSingle(txtSensorWidth.Text), 2) + Math.Pow(Convert.ToSingle(txtSensorHeight.Text), 2)),.5);
                eq = Math.Round ((43.2666153/eq) * Convert.ToSingle(txtPicFL.Text ));
                myEquivalent = eq.ToString();
            }
            catch (Exception) { }

            txtPicEquivalent.Text = myEquivalent;
        }

        #endregion


        #region Calculation of size

        private void tsbFindSize_Click(object sender, EventArgs e)
        {
            goFindSize();
        }

        private void tstDistance_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter) goFindSize();
        }
        
        private void goFindSize()
        {
            tstSize.Text = "";
            try
            {
                mySize = myMeasure / Convert.ToDouble(txtPicFL.Text);
                mySize = myDistance * mySize;
                tstSize.Text = Convert.ToString(Math.Round ( mySize / mySizeScale,2));
            }
            catch (Exception) { }
        }

        #endregion


        #region Calculation of distance

        private void tsbFindDistance_Click(object sender, EventArgs e)
        {
            goFindDistance();
        }

        private void tstSize_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter) goFindDistance();
        }

        private void goFindDistance()
        {
            tstDistance.Text = "";
            try
            {
                myDistance = myMeasure / Convert.ToDouble(txtPicFL.Text);
                myDistance = mySize / myDistance;
                tstDistance.Text = Convert.ToString( Math.Round( myDistance / myDistanceScale,2));
            }
            catch (Exception) { }
        }

        #endregion


        #region Some controls on Size

        //enable or disable Size button
        private void tstSize_TextChanged(object sender, EventArgs e)
        {

            if (tstSize.Text.Trim() == "" || tstSize.Text.Trim() == "0")
            {
                tsbFindDistance.Enabled = false;
                tsbFindDistance.Image = Properties.Resources.right2;
            }
            else
            {
                tsbFindDistance.Enabled = true;
                tsbFindDistance.Image = Properties.Resources.right;
            }

            // set mySize value when you type it manually
            if (tstSize.Selected)
            {
                try
                {
                    mySize = Convert.ToDouble(tstSize.Text) * mySizeScale;
                }
                catch (Exception) { }
            }
        }

        //highligh current value
        private void tstSize_Click(object sender, EventArgs e)
        {
            tstSize.SelectionStart = 0;
            tstSize.SelectionLength = tstSize.Text.Length;

        }

        private void tscSizeScale_TextChanged(object sender, EventArgs e)
        {
            mySizeScale=exchangeSize(tscSizeScale.Text);
            tstSize.Text = Convert.ToString(Math.Round(mySize / mySizeScale, 2));
        }

        #endregion


        #region Some Controls on Distance

        //enable or disable distance button
        private void tstDistance_TextChanged(object sender, EventArgs e)
        {
            if (tstDistance.Text.Trim() == "" || tstDistance.Text.Trim() == "0")
            {
                tsbFindSize .Enabled = false;
                tsbFindSize .Image = Properties.Resources.left2 ;
            }
            else
            {
                tsbFindSize .Enabled = true;
                tsbFindSize .Image = Properties.Resources.left ;
            }

            // set myDistance value when you type it manually
            if (tstDistance.Selected)
            {
                try
                {
                    myDistance = Convert.ToDouble(tstDistance.Text) * myDistanceScale;
                }
                catch (Exception) { }
            }
        }


        private void tscDistanceScale_TextChanged(object sender, EventArgs e)
        {
            myDistanceScale = exchangeSize(tscDistanceScale.Text);
            tstDistance.Text = Convert.ToString(Math.Round(myDistance / myDistanceScale, 2));
        }


         //highligh current value
        private void tstDistance_Click(object sender, EventArgs e)
        {
            tstDistance.SelectionStart = 0;
            tstDistance.SelectionLength = tstDistance.Text.Length;
        }

        # endregion


        #region metric formats

        private double exchangeSize(string myScale)
        {
            switch (myScale.Trim().ToLower())
            {
                case "mm":
                    return .001;
                case "cm":
                    return .01;
                case "m":
                    return 1;
                case "km":
                    return 1000;
                case "inch":
                    return .0254;
                case "foot":
                    return .3048;
                case "mile":
                    return 1609.344;
            }
            return 0;
        }

        #endregion


        #region Others

        private void tsbMove_Click(object sender, EventArgs e)
        {
            tsbMove.Checked = true;
            tsbMeasure.Checked = false;
            picMain.Cursor = Cursors.Hand;
        }

        private void tsbMeasure_Click(object sender, EventArgs e)
        {
            tsbMove.Checked = false;
            tsbMeasure.Checked = true;
            picMain.Cursor = Cursors.Cross;

        }


        private void trbZoom_Scroll(object sender, EventArgs e)
        {
            setZoom();
        }

        private void setZoom()
        {
            myZoom = 50 / (float)trbZoom.Value;
            toolTip1.SetToolTip(trbZoom ,"Zoom " + Convert.ToString((100/myZoom)) +"%");
            RePaint();
        }

        #endregion


    }

}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
CEO
Iran (Islamic Republic of) Iran (Islamic Republic of)

Comments and Discussions