線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3927
推到 Plurk!
推到 Facebook!

WEB CAM 網頁版

 
digitraveler
初階會員


發表:89
回覆:91
積分:46
註冊:2005-06-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-20 00:56:41 IP:59.120.xxx.xxx 未訂閱
感謝 K.Top 上許多前輩的經驗分享 讓我完成了這個小玩意 ..... 程式功能 : WEBCAM 寫檔伺服器 原理說明 : 本程式主要是提供由網頁來瀏覽 WEBCAM 的功能 程式本身並不提供 WEB SERVER , 也就是要依附在 WEB SERVER 上 程式執行後請勿最小化或用別的程式蓋住 , 他會一直不停的將 WEBCAM 抓到的圖形寫到某一 JPG 檔 如 C:\Inetpub\wwwroot\webcam\webcam.jpg 而瀏覽器端只要透過一具有 JAVASCRIPT 的網頁 不停的去 REFRESH 該網頁 , 就會看到動態影像 安裝說明 : 請將壓縮包中的 WEBCAMWRITE.EXE (有 BCB & DELPHI 兩種版本) 任何一個都可以 , 取出放在 WEBSERVER 主機上任何目錄 , 執行他以常駐 , 按 ESC 可關閉 , 第一次執行後關閉, 會在執行檔同目錄下產生 一個同名的 INI 檔 (WEBCAMWRITE.INI) , 內部有 JPG 檔存檔路徑 若使用阿帕契伺服器 , 請將其改為 阿帕契伺服器的目錄下 如 C:\APACHE\www\webcam\webcam.jpg 請將附件中 WWROOT\WEBCAM\ 目錄蓋過 IIS 的 WWROOT\WEBCAM\ 目錄 阿帕契伺服器的話則是蓋過 C:\APACHE\www\webcam 請將 WWROOT\WEBCAM\default.htm 中 識別字 改為 然後你就可以從公共網路鍵入 HTTP://(你的公共IP)/WEBCAM/ 或是同台電腦上打入 HTTP://LOCALHOST/WEBCAM/ 看到你的 WEBCAM 影像 補充說明 : WWROOT\WEBCAM\ 中的 wcsarview.cab 是我偷拿別人的來用的 我也不知該檔用途 , 應該是用來即時解碼或 JAVASCRIPT 的 REFRESH 圖檔的機制吧 限制說明 : 若要一直能從網頁看到畫面 , WEB SERVER 端必須一直執行這個 WEBCAMWRITE.EXE 程式 限於程式功力 , 無法將其最小化或背景執行 (這樣就無法抓到畫面存檔)
附加檔案:73527_WebCam.zip
digitraveler
初階會員


發表:89
回覆:91
積分:46
註冊:2005-06-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-20 22:55:49 IP:59.120.xxx.xxx 未訂閱
修正通告    由於本版本是透過 Panel1 抓畫面 ,所以 Panel1 不能最小化或被蓋住 所以程式中我也動了一些手腳讓 Form StayOnTop 而且沒有最小化按鈕 但是 .....當螢幕保護啟動 ,螢幕變黑 程式抓到的 Panel 的 DC 也變黑 ,存成的 WEBCAM.JPG 當然也變黑 今天參考一堆資料稍加修改 , 終於能不透過 DC 抓畫面 找到可將寫檔程式最小化的方法 :    透過剪貼簿 ,直接將抓到的 WEBCAM 圖檔存到 WEBCAM.JPG 中 請修改本檔 BCB SOURCE 中  void __fastcall TForm1::CapJpgPic()    將以下內容取代原內容  
//擷取JPG圖片----------------------------------------------------------------
void __fastcall TForm1::CapJpgPic()
{     //capFileSaveDIB(hCapWnd,"C:\\1.bmp");  //只能直接存成 bmp (太肥)     //改良版 ,透過 剪貼簿擷取畫面 , 這樣就不怕 Panel 的 DC 不動作時無法存成 WEBCAM.JPG
 capGrabFrame(hCapWnd); // simple macro that sample a single frame from the camera.
 capEditCopy(hCapWnd);  // simple macro that edit a copy of the frame.     TClipboard *PressePapiers = Clipboard(); //前面宣告要多加 #include "Clipbrd.hpp"
 //OpenClipboard(NULL);     //like virtual memory.
 try
 {
  MyBmp->LoadFromClipboardFormat(CF_BITMAP,PressePapiers->GetAsHandle(CF_BITMAP), 0);
  MyJpg->Assign(MyBmp);
  MyJpg->SaveToFile(webcam_jpg);
 }
 catch (...)
 {
 }
 //CloseClipboard();     return;
}
 
系統時間:2024-05-19 4:31:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!