PB Webcam viewer and Webcambrowser

Just starting out? Need help? Post your questions and find answers here.
midebor
User
User
Posts: 26
Joined: Fri Apr 25, 2003 10:22 pm
Location: Liege, Belgium

PB Webcam viewer and Webcambrowser

Post by midebor »

This is the code for those interested by Webcam's, Weather cams, surveillance cam's
Webcam viewer receives the cam's URL as program parameter

Code: Select all

;
; ------------------------------------------------------------
; Purebasic Webcam viewer by midebor (mdb@skynet.be)

; The programm uses URLDownloadToFile Api to download Webcam images 
; to temp.jpg file and displays them using the UseJPEGImageDecoder()
; function.
; The program assumes you are already connected to the Internet
; Has only been tested with ADSL connection 

; The program takes the Webcam's URL as program parameter.
; Place as many instances you need on your desktop with the webcam's URL
; you want to monitor. Only jpg format is supported
; ------------------------------------------------------------
;

UseJPEGImageDecoder()
Parameter$ = ProgramParameter()
If URLDownloadToFile_(0, Parameter$, "temp.jpg", 0, 0)
EndIf
  If LoadImage(0, "temp.jpg")
  
    OpenWindow(0, 0, 0, ImageWidth(), ImageHeight(), #PB_Window_SystemMenu, "PureBasic - Webcam Viewer")
    CreateGadgetList(WindowID())
    ImageGadget(0, 0, 0, ImageWidth(), ImageHeight(), UseImage(0), #PB_Image_Border)
     
    Repeat
    Until WaitWindowEvent() = #PB_EventCloseWindow 
  Else
    MessageRequester("Error", "Can't load the image...", 0)
  EndIf
End
For those who want to see direct action, Webcam Browser shows a selection of 49 (not 50 !) webcams.

Code: Select all

;
; ------------------------------------------------------------
; Purebasic Webcam viewer by midebor (mdb@skynet.be)

; The programm uses URLDownloadToFile Api to download Webcam images 
; to temp.jpg file and displays them using the UseJPEGImageDecoder()
; function.
; The program assumes you are already connected To the Internet
; Has only been tested with ADSL connection 
; ------------------------------------------------------------
;

UseJPEGImageDecoder() ; to decode the "temp.jpg" file


; ------------------ List of camera's ------------------------
Structure List
  Nam.s ; The Webcam's descriptionin shown in the window header
  URL.s ; The complete webcam's URL
EndStructure

  
Dim cam.list(50)
cam(1)\Nam = "Antwerpen Zeevaartschool" 
cam(1)\URL = "http://www.hzs.be/antwerp/schelde.jpg"
cam(2)\Nam = "Bad Godesberg"
cam(2)\URL = "http://www.general-anzeiger-bonn.de/images/neteye/stadthaus.jpg"
cam(3)\Nam = "Berlin - Podsdammerplatz"
cam(3)\URL = "http://www.cityscope.de/pp/panos/cityscope.jpg"
cam(4)\Nam = "Big Ben"
cam(4)\URL = "http://www.webviews.co.uk/liveimages/bigben.jpg"
cam(5)\Nam = "Bruxelles Avenue de Terveuren"
cam(5)\URL = "http://camera.viking.be/images/ispy.jpg"
cam(6)\Nam = "CFN WebCam"
cam(6)\URL = "http://www.spiretech.com/~leonard/cfn/webcam/webcam.jpg"
cam(7)\Nam = "DAX"
cam(7)\URL = "http://deutsche-boerse.com/parkett/parkett2.jpg"
cam(8)\Nam = "De Haan Belgium"
cam(8)\URL = "http://www.dehaan.be/webcam/Video01.jpg"
cam(9)\Nam = "Del Mar Beach Cam"
cam(9)\URL = "http://os1.prod.camzone.com/camzone-ie?delmar:1:1025193280125:0"
cam(10)\Nam = "Dome of Cologne"
cam(10)\URL = "http://www02.wdr.de/webcam/cam1.jpg"
cam(11)\Nam = "Essen-Kupferdreh"
cam(11)\URL = "http://www.kupferdreh.de/cam.jpg"
cam(12)\Nam = "Europe Weather Satelite"
cam(12)\URL = "http://www.usatoday.com/weather/twc_images/europesat_440x297.jpg"
cam(13)\Nam = "GameStar Online-Webcam"
cam(13)\URL = "http://www.gamestar.de/aktuell/webcam/cam.jpg"
cam(14)\Nam = "Ground Zero"
cam(14)\URL = "http://65.200.140.25/ec_metros/ourcams/johnst.jpg"
cam(15)\Nam = "Iowa State University"
cam(15)\URL = "http://www.iastate.edu/webcam/hugesize.jpg"
cam(16)\Nam = "Jericho Beach, Vancouver"
cam(16)\URL = "http://www.jericho.ca/webcam/images/webcam.jpg"
cam(17)\Nam = "Kauai, Hawaii"
cam(17)\URL = "http://hawaiiweathertoday.com/images/webcam_kauai.jpg"
cam(18)\Nam = "Knokke"
cam(18)\URL = "http://www.quiksilver.be/beachcam/live/beach.jpg"
cam(19)\Nam = "Koenigssee, Germany"
cam(19)\URL = "http://www.koenigssee.com/rodelbahn/fsc4.jpg"
cam(20)\Nam = "La Tour Eifel"
cam(20)\URL = "http://www.images-abcparislive.com/eiffel1.jpg?1011467343523"
cam(21)\Nam = "Louvain La Neuve Belgium"
cam(21)\URL = "http://www.sri.ucl.ac.be/SRI/webcam/universite.jpg"
cam(22)\Nam = "MGM Grand (Las Vegas)"
cam(22)\URL = "http://images.earthcam.com/ec_metros/ourcams/mgm.jpg"
cam(23)\Nam = "Midvale Hill (Highway 95)"
cam(23)\URL = "http://www.ruralnetwork.net/~rnsmvlcm/midvalehill.jpg"
cam(24)\Nam = "MOBOTIX M1 PreParkCam"
cam(24)\URL = "http://preparkcam.mobotixserver.de/record/current.jpg"
cam(25)\Nam = "New York Times Square Cam 1"
cam(25)\URL = "http://images.earthcam.com/ec_metros/ourcams/lindys.jpg"
cam(26)\Nam = "New York Times Square Cam 2"
cam(26)\URL = "http://images.earthcam.com/ec_metros/ourcams/lennon.jpg"
cam(27)\Nam = "Niagara Falls"
cam(27)\URL = "http://www.fallsview.com/fallsmain.jpg"
cam(28)\Nam = "Nieuwpoort Belgium)"
cam(28)\URL = "http://www.vvwnieuwpoort.be/webcam/images/webcam.jpg"
cam(29)\Nam = "Oostende aan zee - Belgium"
cam(29)\URL = "http://aanzee.be/images/groot.jpg"
cam(30)\Nam = "Oostende Camera radioamateurs"
cam(30)\URL = "http://www.flanderswebhost.com/webcams/radiocam/radiocam.jpg"
cam(31)\Nam = "Oostende Webcam"
cam(31)\URL = "http://www.oostende.net/webcam/oostendecam.jpg"
cam(32)\Nam = "Panama Canal, Miraflores Locks"
cam(32)\URL = "http://www.pancanal.com/miraflores/miraflores.jpg"
cam(33)\Nam = "Poppies Pool, Bali"
cam(33)\URL = "http://www.poppies.net/webcam.jpg"
cam(34)\Nam = "Poppies Restaurant, Bali"
cam(34)\URL = "http://www.poppies.net/webcam1.jpg"
cam(35)\Nam = "Prague"
cam(35)\URL = "http://193.165.174.197/fullsize.jpg"
cam(36)\Nam = "PSC/EET Weather Station (New York)"
cam(36)\URL = "http://www.paulsmiths.edu/aai/eet/aaicam.jpg"
cam(37)\Nam = "San Diego Zoo Panda Cam"
cam(37)\URL = "http://outstream.camzone.com/camzone-ie?zoo:2:1020871595627:0"
cam(38)\Nam = "World - Shamu Cam"
cam(38)\URL = "http://outstream.camzone.com/camzone-ie?shamu:13:1023798289913"
cam(39)\Nam = "Seattle"
cam(39)\URL = "http://images.earthcam.com/ec_metros/washingtonst/seattle/marqueen.jpg"
cam(40)\Nam = "Stadt Neuburg"
cam(40)\URL = "http://www.neuburg-donau.de/donaucam/donaukai.jpg"
cam(41)\Nam = "Trafalgar Square"
cam(41)\URL = "http://www.webviews.co.uk/liveimages/trafalgarsq.jpg"
cam(42)\Nam = "University of Arizona"
cam(42)\URL = "http://www.cs.arizona.edu/camera/view.jpg"
cam(43)\Nam = "University of Iowa"
cam(43)\URL = "http://www.iihr.uiowa.edu/webcam/cam.jpg"
cam(44)\Nam = "USS Intrepid Cam (New York City)"
cam(44)\URL = "http://65.200.140.25/ec_metros/ourcams/intrepid.jpg"
cam(45)\Nam = "Waikiki in Honolulu"
cam(45)\URL = "http://images.earthcam.com/ec_metros/hawaii/waikiki.jpg"
cam(46)\Nam = "Washington Memorial"
cam(46)\URL = "http://images.earthcam.com/ec_metros/washington/metrosquare.jpg"
cam(47)\Nam = "Weimar"
cam(47)\URL = "http://www.thueringer-webcams.de/weimar/theaterplatz/fullsize.jpg"
cam(48)\Nam = "WorldTradeAftermath.com"
cam(48)\URL = "http://worldtradeaftermath.com/capture0.jpg"
cam(49)\Nam = "Zeebrugge Belgium"
cam(49)\URL = "http://www.rustyhouse.com/beachcam/beachcam.jpg"


  
  For i = 1 To 49
    If URLDownloadToFile_(0, cam(i)\URL, "temp.jpg", 0, 0);
    EndIf
    LoadImage(0, "temp.jpg")
    If OpenWindow(0, 0, 0, ImageWidth(), ImageHeight(), #PB_Window_SystemMenu, "PB - Webcam " + Str(i) + " : " + cam(i)\Nam)        
      CreateGadgetList(WindowID(0))
      ImageGadget(WindowID(0), 0, 0, ImageWidth(), ImageHeight(), UseImage(0), #PB_Image_Border)
      Repeat
      Until WaitWindowEvent() = #PB_EventCloseWindow
      Else
      MessageRequester("Error", "Can't load the image...", 0)
    EndIf
  Next i
End
This 60K program uses no external dll nor libraries. I found several webcam program's on the net but some need 4.5 Meg to do the same..
Merci Fred :D

Looking forward to your tests, comments and suggestions.
Regards,
Michel
User avatar
Andre
PureBasic Team
PureBasic Team
Posts: 2148
Joined: Fri Apr 25, 2003 6:14 pm
Location: Germany (Saxony, Deutscheinsiedel)
Contact:

Post by Andre »

Code: Select all

ImageGadget(WindowID(0), 0, 0, ImageWidth(), ImageHeight(), UseImage(0), #PB_Image_Border) 
should be changed to

Code: Select all

      ImageGadget(0, 0, 0, ImageWidth(), ImageHeight(), UseImage(0), #PB_Image_Border) 
else it would cause a debugger error message. Using the WindowID() handle would give very large results... :wink:

Anyway, great work :D
Bye,
...André
(PureBasicTeam::Docs & Support - PureArea.net | Order:: PureBasic | PureVisionXP)
Post Reply