purebasic.info

PureBasic forum
Текущее время: Ср ноя 21, 2018 9:13 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
СообщениеДобавлено: Пт июн 06, 2008 3:13 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6399
Благодарил (а): 21 раз.
Поблагодарили: 200 раз.
Пункты репутации: 52
В рамках тестирования v4.20, а именно его новых способностей по HTTP, набросал идею просмотра картинок с веб камер, коих в мире насчитывается немеряно, и в России в том числе. Ну, конечно, можно и к примеру через интернет - браузер посмотреть, но там свои недостатки - реклама попутная и трафик жрёт непомерно. А тут чистая картинка. Вот такая идея. Да, и ещё можно картинку эту увеличить и уменьшить, как душе угодно, и интервал просмотра указать любой. Ссылки лично я искал так - открываешь в браузере страничку с веб камерой( Гугл в помощь), и при помощи правой клавиши мыши копировал адрес картинки. Получившийся адрес вставлял в свой код. Если работало, то оставлял. Повторяю, это просто идея, а сама программа пока только в задумке... Ну если кого заинтересует, то буду рад умным советам...

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
; Программа работает с ВЕБ камерами, которые в свою очередь используют для
; вывода в интернет файлы JPG. Это лишь идея, которая требует более сложной реализации...
; kvitaliy, 2008г. Проба версии 4.20 ( Scintilla.dll заменён на аналогичный из состава 4.20 beta)
; хотя, это всего лишь редактор - можно использовать и jaPBe, как более продвинутый!
 
;{ Windows
Enumeration
  #Window_0
EndEnumeration
;}
;{ Gadgets
Enumeration
  #ComboBox_0
  #Image_3
  #Text_7
  #Text_8
EndEnumeration
;}
;{ Images
Enumeration
  #Image
EndEnumeration
 
Global WebCam$
;}
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
;}
Procedure OpenWindow_Window_0()
  If OpenWindow(#Window_0, 428, 47, 400, 400, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
    If CreateGadgetList(WindowID(#Window_0))
      ComboBoxGadget(#ComboBox_0, 5, 35, 390, 100)
     
      AddGadgetItem(#ComboBox_0, -1,"http://webcam.sarbc.ru/webcam.php?resolution=320x240&place=7&dummy=1212641941671") ; Саратов, пл. Революции
      AddGadgetItem(#ComboBox_0, -1,"http://www.telenettv.ru/cam.jpg?1212642883156") ;Самара
      AddGadgetItem(#ComboBox_0, -1,"http://cam.radissonsas.ru/snap320.jpg"); Сочи, частный пансионат, бассейн
      AddGadgetItem(#ComboBox_0, -1,"http://www.livecam.ru/pics/fullsize.jpg?1398587341"); Питер ( р.Мойка)
      AddGadgetItem(#ComboBox_0, -1,"http://scene.tarzanka.ru/scene/20080605192910_550x412_60.jpg"); Москва ( неизвестно где)
      AddGadgetItem(#ComboBox_0, -1,"http://dumaview.mos.ru/images/zal_zas.jpg"); Москва, Зал заседания Думы
      AddGadgetItem(#ComboBox_0, -1,"http://uln.skylink.ru/web/most01.jpg")    ; Ульяновск, подьезд к мосту через р.Волга      
      SetGadgetState(#ComboBox_0, 0)
      TextGadget(#Text_8, 5, 360, 350, 20, "Для обновления кликните по изображению", #PB_Text_Center)
      ImageGadget(#Image_3, 40, 100, 320, 240, 0, #PB_Image_Border)
      TextGadget(#Text_7, 20, 5, 365, 20, "Выбор веб камеры ", #PB_Text_Center)
    EndIf
  EndIf
EndProcedure
 
UseJPEGImageDecoder()
If  InitNetwork()
 OpenWindow_Window_0()
Else
MessageRequester("Message", "Нет доступного TCP/IP в системе!")
End
EndIf
 
 
Procedure WebNew()
 URL.s = WebCam$
   
 If     ReceiveHTTPFile( URL, "C:\Temp\imageCam.jpg")
 ;All OK!
 SetGadgetText(#Text_8,"Готово для позиции № " + Str( GetGadgetState(#ComboBox_0) ))
   Else
      MessageRequester("Message", "Эта камера недоступна!")
      SetGadgetText(#Text_8,"Выбирайте новую камеру! ")
 EndIf
               
  If LoadImage(#Image, "C:\Temp\imageCam.jpg")
          ResizeImage(#Image, 320,240)
          SetGadgetState(#Image_3, ImageID(#Image))
  EndIf
EndProcedure
 
 
 
;{- Event loop
Repeat
  Event = WaitWindowEvent()
  Select Event
    ; ///////////////////
    Case #PB_Event_Gadget
      EventGadget = EventGadget()
      EventType = EventType()
      If EventGadget = #ComboBox_0
           
      ElseIf EventGadget = #Image_3
      SetGadgetText(#Text_8,"Работаю с позицией № " + Str( GetGadgetState(#ComboBox_0) ))
      WebCam$ = GetGadgetText(#ComboBox_0)
      WebNew()
      EndIf
    ; ////////////////////////
    Case #PB_Event_CloseWindow
      EventWindow = EventWindow()
      If EventWindow = #Window_0
        CloseWindow(#Window_0)
        Break
      EndIf
  EndSelect
ForEver
;
;}
 



Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт июн 06, 2008 5:18 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11325
Благодарил (а): 4 раз.
Поблагодарили: 441 раз.
Квиталли, рекомендую сделать проверку наличия файла-рисунка (например, с помощью FileSize) в процедуре, перед тем, как вызывать функцию LoadImage.
А то у меня при первом запуске (связи с инетом небыло) появилось сообщение Эта камера недоступна!, а затем отладчик заругался на LoadImage. :(

А вообще идея хорошая.
У меня на диал-апе (ты такой модем кажется мопедом назвал) каждая картинка загружалась примерно за 4 секунды. :)

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт июн 06, 2008 5:26 pm 
Не в сети
BackupUser
Аватар пользователя

Зарегистрирован: Ср ноя 29, 2006 9:29 pm
Сообщений: 1492
Откуда: Москва
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
У меня тоже сначала не пошло, создал вручную папку C:\Temp с файлом и код заработал отлично.
У меня изображение появляется мгновенно.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт июн 06, 2008 6:35 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6399
Благодарил (а): 21 раз.
Поблагодарили: 200 раз.
Пункты репутации: 52
Ну да, Пётр, в настоящей программе, несомненно, надо будет вставлять бланковый рисунок по умолчанию ( тем более, туда можно впихнуть рекламно-нужную информацию). И со временной папкой, Fdisk, надо конечно, её определять программно, а не простым назначением. Это всё понятно, просто для теста особо не хотелось загромождать лишним кодом.
Сами по себе картинки в основном не большие - около 40 кБ. , время загрузки даже на низкой скорости не велико, но чаще 4-х сек. обновлять нет смысла - обычно и на сайтах картинки обновляются не чаще - чаще это уже где потоковое видео, а там система другая.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт июн 06, 2008 9:35 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс май 04, 2008 12:18 am
Сообщений: 434
Откуда: PointOfPresence.Ru
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Хвалю за идею!
Это пять %)

_________________
Изображение Точка.Присутствия - каждому по потребностям!


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB