Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 510

/ вопрос открыт /

Здравствуйте, эксперты!

Столкнулся с проблемой. В общем нужно в TImage загрузить изображение с WEB-камеры. Подскажите пожалуйста как это сделать. Заранее благодарен

Garacio_Cain Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Garacio_Cain (статус: Посетитель)
Вопрос отправлен: 19 апреля 2008, 16:18
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Feniks

Здравствуйте, Garacio_Cain!
Вот нашел примерчик, правда на англ. языке. Сам лично я не проверял.

First of all, get the SDK at http://developer.logitech.com

After installation, open delphi and Import ActiveX Control VPortal2 from the list. Now, create a new form, and put a VideoPortal from the ActiveX panel and a button. In the uses, add VideoPortal

On the OnShow add:

VideoPortal1.PrepareControl('QCSDK',
'HKEY_LOCAL_MACHINE\Software\JCS Programmation\QCSDK', 0);
VideoPortal1.EnableUIElements(UIELEMENT_STATUSBAR, 0, 0);
VideoPortal1.ConnectCamera2;
VideoPortal1.EnablePreview := 1;
On the ButtonClick add:
var
BMP: TBitmap;
JPG: TJpegImage;
L: string;
begin
F := 'Photos\test.jpg';
VideoPortal1.StampBackgroundColor := clYellow;
VideoPortal1.StampTextColor := clBlack;
VideoPortal1.StampFontName := 'Arial';
VideoPortal1.StampPointSize := 10;
VideoPortal1.StampTransparentBackGround := 0;
L := Format(' %s - %s ', [DateTimeToStr(Now), Num]);
VideoPortal1.PictureToFile(0, 24, 'Temp.bmp', L);
BMP := TBitmap.Create;
JPG := TJpegImage.Create;
BMP.LoadFromFile('Temp.bmp');
JPG.CompressionQuality := 85;
JPG.Assign(BMP);
JPG.SaveToFile(F);
BMP.Free;
JPG.Free;
end;
It's all, run the application, you will see the image from the camera, click on the button to get a picture.

Сам модуль VideoPortal.Pas находится в Приложении.

Приложение:
  1. unit VideoPortal;
  2.  
  3. interface
  4. // Copyright (c) 1996-2000 Logitech, Inc. All Rights Reserved
  5. // User Interface Element, codes used with EnableUIElement method
  6. const
  7. UIELEMENT_640x480 = 0;
  8. const
  9. UIELEMENT_320x240 = 1;
  10. const
  11. UIELEMENT_PCSMART = 2;
  12. const
  13. UIELEMENT_STATUSBAR = 3;
  14. const
  15. UIELEMENT_UI = 4;
  16. const
  17. UIELEMENT_CAMERA = 5;
  18. const
  19. UIELEMENT_160x120 = 6;
  20.  
  21. // Camera status codes, returned by CameraState property
  22. const
  23. CAMERA_OK = 0;
  24. const
  25. CAMERA_UNPLUGGED = 1;
  26. const
  27. CAMERA_INUSE = 2;
  28. const
  29. CAMERA_ERROR = 3;
  30. const
  31. CAMERA_SUSPENDED = 4;
  32. const
  33. CAMERA_DUAL_DETACHED = 5;
  34. const
  35. CAMERA_UNKNOWNSTATUS = 10;
  36.  
  37. // Movie Recording Modes, used with MovieRecordMode property
  38. const
  39. SEQUENCECAPTURE_FPS_USERSPECIFIED = 1;
  40. const
  41. SEQUENCECAPTURE_FPS_FASTASPOSSIBLE = 2;
  42. const
  43. STEPCAPTURE_MANUALTRIGGERED = 3;
  44.  
  45. // Movie Creation Flags, used with MovieCreateFlags property
  46. const
  47. MOVIECREATEFLAGS_CREATENEW = 1;
  48. const
  49. MOVIECREATEFLAGS_APPEND = 2;
  50.  
  51. // Notification Codes
  52. const
  53. NOTIFICATIONMSG_MOTION = 1;
  54. const
  55. NOTIFICATIONMSG_MOVIERECORDERROR = 2;
  56. const
  57. NOTIFICATIONMSG_CAMERADETACHED = 3;
  58. const
  59. NOTIFICATIONMSG_CAMERAREATTACHED = 4;
  60. const
  61. NOTIFICATIONMSG_IMAGESIZECHANGE = 5;
  62. const
  63. NOTIFICATIONMSG_CAMERAPRECHANGE = 6;
  64. const
  65. NOTIFICATIONMSG_CAMERACHANGEFAILED = 7;
  66. const
  67. NOTIFICATIONMSG_POSTCAMERACHANGED = 8;
  68. const
  69. NOTIFICATIONMSG_CAMERBUTTONCLICKED = 9;
  70. const
  71. NOTIFICATIONMSG_VIDEOHOOK = 10;
  72. const
  73. NOTIFICATIONMSG_SETTINGDLGCLOSED = 11;
  74. const
  75. NOTIFICATIONMSG_QUERYPRECAMERAMODIFICATION = 12;
  76. const
  77. NOTIFICATIONMSG_MOVIESIZE = 13;
  78.  
  79. // Error codes used by NOTIFICATIONMSG_MOVIERECORDERROR notification:
  80. const
  81. WRITEFAILURE_RECORDINGSTOPPED = 0;
  82. const
  83. WRITEFAILURE_RECORDINGSTOPPED_FILECORRUPTANDDELETED = 1;
  84. const
  85. WRITEFAILURE_CAMERA_UNPLUGGED = 2;
  86. const
  87. WRITEFAILURE_CAMERA_SUSPENDED = 3;
  88.  
  89. // Camera type codes, returned by GetCameraType method
  90. const
  91. CAMERA_UNKNOWN = 0;
  92. const
  93. CAMERA_QUICKCAM_VC = 1;
  94. const
  95. CAMERA_QUICKCAM_QUICKCLIP = 2;
  96. const
  97. CAMERA_QUICKCAM_PRO = 3;
  98. const
  99. CAMERA_QUICKCAM_HOME = 4;
  100. const
  101. CAMERA_QUICKCAM_PRO_B = 5;
  102. const
  103. CAMERA_QUICKCAM_TEKCOM = 6;
  104. const
  105. CAMERA_QUICKCAM_EXPRESS = 7;
  106. const
  107. CAMERA_QUICKCAM_FROG = 8; // MIGHT CHANGE NAME BUT ENUM STAYS THE SAME
  108. const
  109. CAMERA_QUICKCAM_EMERALD = 9; // MIGHT CHANGE NAME BUT ENUM STAYS THE SAME
  110.  
  111. // Camera-specific property codes used by Set/GetCameraPropertyLong
  112. const
  113. PROPERTY_ORIENTATION = 0;
  114. const
  115. PROPERTY_BRIGHTNESSMODE = 1;
  116. const
  117. PROPERTY_BRIGHTNESS = 2;
  118. const
  119. PROPERTY_CONTRAST = 3;
  120. const
  121. PROPERTY_COLORMODE = 4;
  122. const
  123. PROPERTY_REDGAIN = 5;
  124. const
  125. PROPERTY_BLUEGAIN = 6;
  126. const
  127. PROPERTY_SATURATION = 7;
  128. const
  129. PROPERTY_EXPOSURE = 8;
  130. const
  131. PROPERTY_RESET = 9;
  132. const
  133. PROPERTY_COMPRESSION = 10;
  134. const
  135. PROPERTY_ANTIBLOOM = 11;
  136. const
  137. PROPERTY_LOWLIGHTFILTER = 12;
  138. const
  139. PROPERTY_IMAGEFIELD = 13;
  140. const
  141. PROPERTY_HUE = 14;
  142. const
  143. PROPERTY_PORT_TYPE = 15;
  144. const
  145. PROPERTY_PICTSMART_MODE = 16;
  146. const
  147. PROPERTY_PICTSMART_LIGHT = 17;
  148. const
  149. PROPERTY_PICTSMART_LENS = 18;
  150. const
  151. PROPERTY_MOTION_DETECTION_MODE = 19;
  152. const
  153. PROPERTY_MOTION_SENSITIVITY = 20;
  154. const
  155. PROPERTY_WHITELEVEL = 21;
  156. const
  157. PROPERTY_AUTO_WHITELEVEL = 22;
  158. const
  159. PROPERTY_ANALOGGAIN = 23;
  160. const
  161. PROPERTY_AUTO_ANALOGGAIN = 24;
  162. const
  163. PROPERTY_LOWLIGHTBOOST = 25;
  164. const
  165. PROPERTY_COLORBOOST = 26;
  166. const
  167. PROPERTY_ANTIFLICKER = 27;
  168. const
  169. PROPERTY_OPTIMIZATION_SPEED_QUALITY = 28;
  170. const
  171. PROPERTY_STREAM_HOOK = 29;
  172. const
  173. PROPERTY_LED = 30;
  174.  
  175. const
  176. ADJUSTMENT_MANUAL = 0;
  177. const
  178. ADJUSTMENT_AUTOMATIC = 1;
  179.  
  180. const
  181. ORIENTATIONMODE_NORMAL = 0;
  182. const
  183. ORIENTATIONMODE_MIRRORED = 1;
  184. const
  185. ORIENTATIONMODE_FLIPPED = 2;
  186. const
  187. ORIENTATIONMODE_FLIPPED_AND_MIRRORED = 3;
  188.  
  189. const
  190. COMPRESSION_Q0 = 0;
  191. const
  192. COMPRESSION_Q1 = 1;
  193. const
  194. COMPRESSION_Q2 = 2;
  195.  
  196. const
  197. ANTIFLICKER_OFF = 0;
  198. const
  199. ANTIFLICKER_50Hz = 1;
  200. const
  201. ANTIFLICKER_60Hz = 2;
  202.  
  203. const
  204. OPTIMIZE_QUALITY = 0;
  205. const
  206. OPTIMIZE_SPEED = 1;
  207.  
  208. const
  209. LED_OFF = 0;
  210. const
  211. LED_ON = 1;
  212. const
  213. LED_AUTO = 2;
  214. const
  215. LED_MAX = 3;
  216.  
  217. const
  218. PICTSMART_LIGHTCORRECTION_NONE = 0;
  219. const
  220. PICTSMART_LIGHTCORRECTION_COOLFLORESCENT = 1;
  221. const
  222. PICTSMART_LIGHTCORRECTION_WARMFLORESCENT = 2;
  223. const
  224. PICTSMART_LIGHTCORRECTION_OUTSIDE = 3;
  225. const
  226. PICTSMART_LIGHTCORRECTION_TUNGSTEN = 4;
  227.  
  228. const
  229. PICTSMART_LENSCORRECTION_NORMAL = 0;
  230. const
  231. PICTSMART_LENSCORRECTION_WIDEANGLE = 1;
  232. const
  233. PICTSMART_LENSCORRECTION_TELEPHOTO = 2;
  234.  
  235. const
  236. CAMERADLG_GENERAL = 0;
  237. const
  238. CAMERADLG_ADVANCED = 1;
  239.  
  240. implementation
  241. end.
  242.  
  243. Example shows how to use the PictureToMemory method in the QuickCam SDK.
  244.  
  245. type
  246. TMemoryStream = class(Classes.TMemoryStream);
  247.  
  248. var
  249. MS: TMemoryStream;
  250. lSize: LongInt;
  251. pBuffer: ^Byte;
  252.  
  253. begin
  254.  
  255. MS := TMemoryStream.Create;
  256. bitmap1 := TBitmap.Create;
  257.  
  258. try
  259. if VideoPortal1.PictureToMemory(0, 24, 0, lSize, '') = 1 then
  260. begin
  261. pBuffer := AllocMem(lSize);
  262. if VideoPortal1.PictureToMemory(0, 24, integer(pBuffer), lSize, '') = 1 then
  263. begin
  264. MS.SetPointer(pBuffer, lSize);
  265. bitmap1.loadfromstream(MS);
  266. end;
  267. end;
  268. finally
  269. MS.Free;
  270. FreeMem(pBuffer);
  271. end;
  272. end;


Ответ отправил: Feniks (статус: Бакалавр)
Время отправки: 21 апреля 2008, 17:51
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 25 апреля 2008, 10:28; участников в обсуждении: 2.
Garacio_Cain

Garacio_Cain (статус: Посетитель), 23 апреля 2008, 13:52 [#1]:

Feniks, огромное спасибо!
Feniks

Feniks (статус: Бакалавр), 25 апреля 2008, 10:28 [#2]:

Спасибо в животе не булькает ;-)
Как говорится, если помогло, ставь "+" в репутацию, т.е. оценку выстави, плиз. :-)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:41
Выполнено за 0.02 сек.