²é¿´: 2063  |  »Ø¸´: 8
¡¾½±Àø¡¿ ±¾Ìû±»ÆÀ¼Û2´Î£¬×÷Õßzyj8119Ôö¼Ó½ð±Ò 1.4 ¸ö
µ±Ç°Ö»ÏÔʾÂú×ãÖ¸¶¨Ìõ¼þµÄ»ØÌû£¬µã»÷ÕâÀï²é¿´±¾»°ÌâµÄËùÓлØÌû

zyj8119

ľ³æ (ÖøÃûдÊÖ)


[×ÊÔ´] ¡¾×ªÌû¡¿ÓÃDelphi¿ª·¢ÊÓÆµÁÄÌìÈí¼þ ÒÑÓÐ1È˲ÎÓë

Ò»¡¢ÒýÑÔ

¡¡¡¡ÎÒÃÇÖªµÀÊÓÆµÁÄÌìÈí¼þµÄ¹Ø¼ü¼¼ÊõÔÚÓڲɼ¯ÊÓÆµ£¬²¢ÊµÊ±´«Ê䏸ÁÄÌìÈí¼þÔÚÏßµÄÈË¡£¶ÔÓÚÊÓÆµµÄ²É¼¯£¬ÕâÀï²ÉÓÃ΢Èí¹«Ë¾µÄ¹ØÓÚÊý×ÖÊÓÆµµÄÒ»¸öÈí¼þ°üVFW£¨Video for Windows£©¡£ÏàÐźܶàÈ˶ÔËü¶¼ºÜÊìϰ£¬VFWÄÜʹӦÓóÌÐòͨ¹ýÊý×Ö»¯É豸´Ó´«Í³µÄÄ£ÄâÊÓÆµÔ´µÃµ½Êý×Ö»¯µÄÊÓÆµ¼ô¼­£¬VFWµÄÒ»¸ö¹Ø¼ü˼ÏëÊDz¥·Åʱ²»ÐèҪרÓÃÓ²¼þ¡£ÎªÁ˽â¾öÊý×ÖÊÓÆµÊý¾ÝÁ¿´óµÄÎÊÌ⣬ÐèÒª¶ÔÊý¾Ý½øÐÐѹËõ£¬¶øVFWÒý½øÁËAVIµÄÎļþ±ê×¼¡£¸Ã±ê׼δ¹æ¶¨ÈçºÎ¶ÔÊÓÆµ½øÐв¶×½¡¢Ñ¹Ëõ¼°²¥·Å£¬½ö¹æ¶¨ÊÓÆµºÍÒôƵ¸ÃÈçºÎ´æ´¢ÔÚÓ²ÅÌÉϼ°ÔÚAVIÎļþÖн»Ìæ´æ´¢ÊÓÆµÖ¡ºÍÓëÖ®ÏàÆ¥ÅäµÄÒôƵÊý¾Ý¡£Í¨¹ýVFW£¬¿ª·¢ÈËԱͨ¹ý·¢ËÍÏûÏ¢»òÉèÖÃÊôÐÔÀ´²¶×½¡¢²¥·ÅºÍ±à¼­ÊÓÆµ¼ô¼­¡£µ±Óû§ÔÚ°²×°VFWʱ£¬°²×°³ÌÐò»á×Ô¶¯µØ°²×°ÅäÖÃÊÓÆµËùÐèÒªµÄ×é¼þ£¬ÈçÉ豸Çý¶¯³ÌÐò¡¢ÊÓÆµÑ¹Ëõ³ÌÐòµÈ¡£VFWÖ÷ÒªÓÉ6¸öÄ£¿é×é³É¡£VFW¹¦ÄÜÄ£¿é£º

¡¡¡¡AVICAP.DLL °üº¬Ö´ÐÐÊÓÆµ²¶×½µÄº¯Êý£¬Ëü¸øAVIÎļþµÄI/O´¦ÀíºÍÊÓÆµ¡¢ÒôƵÉ豸Çý¶¯³ÌÐòÌṩһ¸ö¸ß¼¶½Ó¿Ú

¡¡¡¡MSVIDEO.DLL °üº¬Ò»Ì×ÌØÊâµÄDrawDibº¯Êý£¬ÓÃÀ´´¦ÀíÆÁÄ»ÉϵÄÊÓÆµ²Ù×÷

¡¡¡¡MCIAVI.DRV °üÀ¨¶ÔVFWµÄMCIÃüÁî½âÊÍÆ÷µÄÇý¶¯³ÌÐò

¡¡¡¡AVIFILE.DLL °üº¬Óɱê×¼¶àýÌåI/O£¨mmio£©º¯ÊýÌṩµÄ¸ü¸ßµÄÃüÁÓÃÀ´·ÃÎÊ.AVIÎļþ

¡¡¡¡ICM ѹËõ¹ÜÀíÆ÷£¬ÓÃÓÚ¹ÜÀíµÄÊÓÆµÑ¹Ëõ/½âѹËõµÄ±àÒëÂëÆ÷£¨Codec£©

¡¡¡¡ACM ÒôƵѹËõ¹ÜÀíÆ÷£¬ÌṩÓëICMÏàËÆµÄ·þÎñ£¬ÊÊÓÃÓÚ²¨ÐÎÒôƵ

¡¡¡¡¶ÔÓÚÊÓÆµµÄ´«Ê䣬ÎÒÃÇʹÓÃUDPÀ´´«£¬ÒòΪUDP´«ÊäËٶȿ죬TCPÊÇÃæÏòÁ¬½ÓµÄ£¬½¨Á¢Á¬½Óʱ˫·½Ðè¾­¹ýÈý´ÎÎÕÊÖ£¬Êý¾Ý´«Êä¿É¿¿£¬FTP¡¢telnetµÈ¾ÍÊÇ»ùÓÚTCPµÄ£¬UDPÊÇÃæÏò·ÇÁ¬½ÓµÄ£¬·¢³öÐÅÏ¢²»Ðè¶Ô·½È·ÈÏ£¬µ«ÕâÑùËٶȱÈTCP¿ì£¬µ«ÓпÉÄܶªÊ§Êý¾Ý£¬ÏóSMTP¡¢tftpµÈ¾ÍÊÇ»ùÓÚUDPµÄ¡£ÁíÍâUDP»¹Ö§³Ö¹ã²¥£¬UDP¹ã²¥Á½ÖÖ£¬Ò»ÖÖÊÇdirected broadcast£¬±ÈÈçÄãµÄÍø¶ÎÊÇ192.168.0.X£¬Äã¾ÍÍù192.168.0.255·¢¾Í¿ÉÒÔÁË¡£ÁíÒ»ÖÖÊÇlimited broadcast,¹ã²¥µØÖ·ÊÇ255.255.255.255
»Ø¸´´ËÂ¥

» ÊÕ¼±¾ÌûµÄÌÔÌûר¼­ÍƼö

³ÌÐòÓïÑÔÏä

» ²ÂÄãϲ»¶

» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

zyj8119

ľ³æ (ÖøÃûдÊÖ)


ÒýÓûØÌû:
Originally posted by zyj8119 at 2010-12-02 16:40:36:

3.2½¨Á¢ÊÓÆµÁÄÌìÈí¼þ¿Í»§¶Ë

3.2.1н¨Ò»¸ö¹¤³Ì£¬ÃüÃûΪProject2.dpr

¡¡¡¡3.2.2ÔÚ³ÌÐò´°¿ÚForm2ÉÏ·ÅÖÃÒ»¸öimage¿Ø¼þ£¬¸Ã¿Ø¼þÓÃÓÚ½ÓÊÕµÄͼÏñÄÚ ...


ÊÓÆµÁÄÌìÈí¼þ·þÎñÆ÷
6Â¥2010-12-02 16:41:33
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
²é¿´È«²¿ 9 ¸ö»Ø´ð

zyj8119

ľ³æ (ÖøÃûдÊÖ)


ÒýÓûØÌû:
Originally posted by zyj8119 at 2010-12-02 16:37:27:
Ò»¡¢ÒýÑÔ

¡¡¡¡ÎÒÃÇÖªµÀÊÓÆµÁÄÌìÈí¼þµÄ¹Ø¼ü¼¼ÊõÔÚÓڲɼ¯ÊÓÆµ£¬²¢ÊµÊ±´«Ê䏸ÁÄÌìÈí¼þÔÚÏßµÄÈË¡£¶ÔÓÚÊÓÆµµÄ²É¼¯£¬ÕâÀï²ÉÓÃ΢Èí¹«Ë¾µÄ¹ØÓÚÊý×ÖÊÓÆµµÄÒ»¸öÈí¼þ°üVFW£¨Video for Windows£©¡£ÏàÐźܶàÈ˶ÔËü¶¼ºÜÊìϰ£¬ ...

¶þ¡¢ÊÓÆµÁÄÌìÈí¼þµÄ¿ª·¢²½Öè

¡¡¡¡2.1 ´´½¨²¶×½´°¿Ú£¬²É¼¯ÊÓÆµ

¡¡¡¡ÔÚ½øÐÐÊÓÆµ²¶×½Ö®Ç°±ØÐèÒªÏÈ´´½¨Ò»¸ö²¶×½´°¿Ú£¬²¢Ó¦ÒÔ´ËΪ»ù´¡½øÐÐËùÓеIJ¶×½¼°ÉèÖòÙ×÷¡£²¶×½´°¿Ú¿ÉÓÃAVICap´°¿ÚÀàµÄ"CapCreateCaptureWindow"º¯ÊýÀ´´´½¨£¬Æä´°¿Ú·ç¸ñ¿ÉÉèÖÃΪWSCHILDºÍWS_VISIBLE²ÎÊý¡£

¡¡¡¡ÓÐÁ˲¶×½´°¿Ú£¬ÎÒÃǾͿÉÒÔ½«ÊÓÆµÁ÷ºÍÒôƵÁ÷²¶×½µ½Ò»¸öAVIÎļþÖУ»¶¯Ì¬µØÍ¬ÊÓÆµºÍÒôƵÊäÈëÆ÷¼þÁ¬½Ó»ò¶Ï¿ª£»ÓÃOverlay»òPreviewģʽ¶ÔÊäÈëµÄÊÓÆµÁ÷½øÐÐʵʱÏÔʾ£¬ÉèÖò¶×½ËÙÂÊ£¬ÏÔʾ¿ØÖÆÊÓÆµÔ´¡¢ÊÓÆµ¸ñʽ¼°ÊÓÆµÑ¹ËõµÄ¶Ô»°¿ò£¬´´½¨¡¢±£´æ»òÔØÈëµ÷É«°å£¬½«Í¼ÏñºÍÏà¹ØµÄµ÷É«°å¿½±´µ½¼ôÌù°å£¬½«²¶×½µÄµ¥Ö¡Í¼Ïñ±£´æµ½BMP¸ñʽÎļþÖС£

¡¡¡¡2.2 ²¶×½´°¿ÚºÍÇý¶¯³ÌÐòµÄ¹ØÁª

¡¡¡¡½ö½öÒ»¸ö²¶×½´°¿ÚÊDz»Äܹ¤×÷ÆðÀ´µÄ£¬Ëü±ØÐëÒªÓëÒ»¸öÉ豸Ïà¹ØÁª²ÅÄÜÈ¡µÃÊÓÆµÐźš£Óú¯ÊýCapDriverConnect¿Éʹ²¶×½´°ÓëÆäÉ豸Çý¶¯³ÌÐòÏà¹ØÁª¡£

¡¡¡¡2.3ÉèÖÃÊÓÆµÉ豸µÄÊôÐÔ

¡¡¡¡Í¨¹ýÉèÖÃTcaptureParms½á¹¹±äÁ¿µÄ¸÷¸ö³ÉÔ±±äÁ¿£¬¿ÉÒÔ¿ØÖÆÉ豸µÄ²ÉÑùƵÂÊ¡¢ÖжϲÉÑù°´¼ü¡¢×´Ì¬ÐÐΪ¡£ÉèÖúÃTcaptureParms½á¹¹±äÁ¿ºó£¬¿ÉÒÔÓú¯CapCaptureSetSetupʹÉèÖÃÉúЧ¡£Ö®ºó»¹¿ÉÒÔÓÃCapPreviewScale¡¢CapPreviewRateÉèÖÃÔ¤ÀÀµÄ±ÈÀýÓëËÙ¶È£¬Ò²¿ÉÒÔÖ±½ÓʹÓÃÉ豸µÄĬÈÏÖµ¡£

¡¡¡¡2.4´ò¿ªÔ¤ÀÀ

¡¡¡¡ÀûÓú¯ÊýCapOverlay¿ÉÑ¡ÔñÊÇ·ñ²ÉÓõþ¼ÓģʽԤÀÀ£¬ÒÔʹϵͳ×ÊÔ´Õ¼ÓÃС£¬ÊÓÆµÏÔʾËٶȼӿ졣ȻºóÓÃCapPreviewÆô¶¯Ô¤ÀÀ¹¦ÄÜ£¬Õâʱ¾Í¿ÉÒÔÔÚÆÁÄ»ÉÏ¿´µ½À´×ÔÉãÏñÍ·µÄͼÏñÁË¡£

¡¡¡¡2.5ʹÓò¶×½´°»Øµ÷º¯Êý

¡¡¡¡Ç°µÄËĸö²½Öè¾Í¿ÉÒÔ½¨Á¢Ò»¸ö»ù±¾µÄÊÓÆµ²¶×½³ÌÐòÁË£¬Èç¹ûÏë×Ô¼º´¦Àí´ÓÉ豸²¶×½µ½µÄÊÓÆµÊý¾Ý£¬ÔòҪʹÓò¶×½´°»Øµ÷º¯ÊýÀ´´¦Àí£¬±ÈÈçÒ»Ö¡Ò»Ö¡µØ»ñµÃÊÓÆµÊý¾Ý£¬Ò²¿ÉÒÔÒÔÁ÷µÄ·½Ê½»ñµÃÊÓÆµÊý¾ÝµÈµÈ¡£

¡¡¡¡2.6´«ÊäÊÓÆµÁ÷

¡¡¡¡Ê¹Óûص÷º¯Êý¿ÉÒÔÈ¡µÃµÚÒ»Ö¡µÄÊý¾Ý£¬ÎÒÃÇʹÓÃÍøÂç¼¼Êõ½«Êý¾Ý·¢¸øÆäËü»úÆ÷£¬ÆäËü»úÆ·½«½ÓÊÕµÄÊý¾ÝÏÔʾ³öÀ´¡£

¡¡¡¡2.7½ÓÊÕÊÓÆµ

¡¡¡¡½ÓÊÕUDPÊý¾Ý£¬Í¬Ê±½«½ÓÊÕµ½µÄÊý¾Ý»ØÏÔ³öÀ´£¬ÕâÑù¾Í¿ÉÒÔ¿´µ½Ô¶´¦´«À´µÄÊÓÆµÁË¡£

¡¡¡¡Èý¡¢ÓÃDelphi±àд³ÌÐò´úÂë

¡¡¡¡Î¢ÈíµÄVFW SDKÖ»ÓÐVCºÍVB°æ£¬²¢Ã»ÓÐDelphi°æ£¬²»¹ýÔÚÍøÉÏ¿ÉÒÔÕÒµ½VFW.PASÎļþ£¬FW.PASÎļþÉùÃ÷Á˵÷ÓÃDLLÖеĸ÷¸öº¯ÊýºÍ±äÁ¿¡££¨×¢£ºÔ´´úÂëÖÐÌṩÁËVFW.PASÎļþ£©

¡¡¡¡ÏÂÃæ¾ÍÒÔDelphi7¿ª·¢Ò»¸öÍøÂçÊÓÆµÁÄÌìÈí¼þ£¬ÁÄÌìÈí¼þ·ÖÁ½¸ö³ÌÐò£¬Ò»¸öÊÇÊÓÆµ²É¼¯³ÌÐò²¢½øÐÐUDP¹ã²¥µÄÊÓÆµÁÄÌìÈí¼þ·þÎñÆ÷£¬ÁíÒ»¸öÊǽÓÊÕUDP¹ã²¥³ÌÐòÏÔʾ´«À´µÄÊÓÆµÊý¾ÝµÄÊÓÆµÁÄÌìÈí¼þ¿Í»§¶Ë¡£

¡¡¡¡3.1½¨Á¢ÊÓÆµÁÄÌìÈí¼þ·þÎñÆ÷
2Â¥2010-12-02 16:37:45
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

zyj8119

ľ³æ (ÖøÃûдÊÖ)


ÒýÓûØÌû:
Originally posted by zyj8119 at 2010-12-02 16:37:45:

¶þ¡¢ÊÓÆµÁÄÌìÈí¼þµÄ¿ª·¢²½Öè

¡¡¡¡2.1 ´´½¨²¶×½´°¿Ú£¬²É¼¯ÊÓÆµ

¡¡¡¡ÔÚ½øÐÐÊÓÆµ²¶×½Ö®Ç°±ØÐèÒªÏÈ´´½¨Ò»¸ö²¶×½´°¿Ú£¬²¢Ó¦ÒÔ´ËΪ»ù´¡½øÐÐËùÓеIJ¶×½¼°ÉèÖòÙ×÷¡£²¶×½´°¿Ú¿ÉÓÃAVICap´°¿ÚÀàµÄ"CapCreateCa ...

3Â¥2010-12-02 16:38:20
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

zyj8119

ľ³æ (ÖøÃûдÊÖ)


ÒýÓûØÌû:
Originally posted by zyj8119 at 2010-12-02 16:38:20:


3.1.2ÔÚForm1ÉÏ·ÅÖÃÒ»¸öTpanel¿Ø¼þ£¬¸Ã¿Ø¼þÓÃÓÚÏÔʾÊÓÆµ¡£Ö®ºóÔÙ·ÅÖÃÁ½¸öTbutton¿Ø¼þ£¬Ò»¸öcaptionΪ"¿ªÊ¼",ÁíÒ»¸öNameΪ"Í£Ö¹"£¬·ÅÖÃÒ»¸öUDP×é¼þ£¬ÕâÀïÓÃindyµÄIdUDPClientÓÃÀ´´«ÊäÊÓÆµ£¬Èçͼʾ£º

¡¡3.1.3¶¨ÒåÈ«¾Ö±äÁ¿

CapWnd:THandle; //¶¨Òå²¶×½´°¾ä±ú
CapParms:TcaptureParms; //ÓÃÓÚÉèÖÃÉ豸ÊôÐԵĽṹ±äÁ¿
BMPINFO:TBitmapInfo; //BMPͼÏñÐÅÏ¢



3.1.4±àÂëʼþ´úÂë
¡¡
¡¡¡¡¿ªÊ¼°´Å¥´úÂ룺

CapWnd := capCreateCaptureWindow('ÎҵĴ°¿Ú', WS_VISIBLE or WS_CHILD,//´°¿ÚÑùʽ 0, //X×ø±ê 0, //Y×ø±ê panel1.Width, //´°¿Ú¿í panel1.Height, //´°¿Ú¸ß panel1.handle, //´°¿Ú¾ä±ú 0); //ͨ³£Îª0
if CapWnd = 0 then exit; //¶¨ÒåÖ¡²¶×½»Øµ÷º¯Êý
CapSetCallbackOnFrame(CapWnd,FrameCallBack);
CapParms.dwRequestMicroSecPerFrame:=1;
CapParms.fLimitEnabled:=FALSE;
CapParms.fCaptureAudio:=FALSE;
CapParms.fMCIControl:=FALSE;
CapParms.fYield:=TRUE;
CapParms.vKeyAbort:=VK_ESCAPE;
CapParms.fAbortLeftMouse:=False;
CapParms.fAbortRightMouse:=FALSE; //ÈÃÉèÖÃÉúЧ
CapCaptureSetSetup(capWnd,@CapParms,sizeof(TCAPTUREPARMS));
CapPreviewRate(capWnd,33); //ÉèÖÃÔ¤ÀÀÊÓÆµµÄƵÂÊ
CapCaptureSequenceNoFile(capWnd); //Èç¹ûÒª²¶×½ÊÓÆµÁ÷£¬ÔòҪʹÓú¯ÊýÀ´Ö¸¶¨²»Éú³ÉÎļþ£¬²»È»»á×Ô¶¯Éú³ÉAVIÎļþ CapDriverConnect(CapWnd,0); //Á¬½ÓÉãÏñÍ·É豸£¬µÚ¶þ¸ö²ÎÊýÊǸöÐòºÅ£¬µ±ÏµÍ³ÖÐ×°Óжà¸öÏÔʾÇý¶¯³ÌÐòʱ£¬ÆäÖµ·Ö±ðÒÀ´ÎΪ0µ½×ܸöÊýÈç¹ûÓжà¸öÉãÏñÍ·£¬ÄÇô¾ÍÊÇ0->1->2
capGetVideoFormat(capWnd, @BMPINFO,sizeof(TBitmapInfo)); //È¡µÃÊÓÆµÍ¼ÏñÊý¾ÝÍ·
CapPreviewScale(capWnd,TRUE); //ÊÇ·ñËõ·Å
CapOverlay(capWnd,true); //Ö¸¶¨ÊÇ·ñʹÓõþ¼Óģʽ£¬trueΪʹÓ㬷ñÔòΪfalseCapPreview(capWnd,true);

¡¡¡¡»Øµ÷º¯Êý´úÂ룺

var hd:Thandle;
jpg:TJpegImage;
memStream :TMemoryStream;
Bitmap:TBitmap;
begin //½«Êý¾ÝÏÔÔÚImage£¬
Bitmap:=TBitmap.Create;
Bitmap.Width :=BMPINFO.bmiHeader.biWidth;
// New size of Bitmap
Bitmap.Height:=BMPINFO.bmiHeader.biHeight;
hd:= DrawDibOpen; DrawDibDraw(hd,Bitmap.canvas.handle,0,0,_
¡¡BMPINFO.BmiHeader.biwidth,BMPINFO.bmiheader.biheight,_
¡¡@BMPINFO.bmiHeader,lpVHdr^.lpData,0,0,BMPINFO.bmiHeader.biWidth,_
¡¡BMPINFO.bmiHeader.biheight,0);
DrawDibClose(hd); //·¢ËÍÊý¾Ý
memStream := TMemoryStream.Create;
jpg := TJpegImage.Create;
jpg.Assign(Bitmap);
jpg.CompressionQuality := 10; //jpgѹËõÖÊÁ¿
jpg.JPEGNeeded;
jpg.Compress;
jpg.SaveToStream(memStream);
jpg.Free; //ÒòΪUDPÊý¾Ý°üÓдóСÏÞÖÆ£¬ÕâÀïÈç¹û³¬³ö²¿·Ö£¬¾ÍûÓд«Ê䣬ÍêÈ«¿ÉÒÔ·¢¼¸´Î·¢³öÈ¥
Form1.IdUDPClient1.BroadcastEnabled:=true;//Óù㲥¹¦ÄÜ
if memStream.Size>Form1.IdUDPClient1.BufferSize then
//Ïò192.168.0.XÍø¶Î¹ã²¥£¬¶Ë¿Ú 9001
Form1.IdUDPClient1.SendBuffer('192.168.0.255',9001,memStream.Memory^,Form1.IdUDPClient1.BufferSize) else Form1.IdUDPClient1.SendBuffer('192.168.0.255',9001,memStream.Memory^,memStream.Size);
memStream.Free;
Bitmap.Free;
End;

¡¡¡¡Í£Ö¹´úÂ룺

capCaptureAbort(CapWnd); //Í£Ö¹²¶×½ capDriverDisconnect(CapWnd); //½«²¶×½´°Í¬Çý¶¯Æ÷¶Ï¿ª

¡¡¡¡ÍêÕûµÄÊÓÆµÁÄÌìÈí¼þ·þÎñÆ÷´úÂ룺

unit Unit1;
interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls,VFW, IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient,jpeg;type TForm1 = class(TForm) Panel1: TPanel;
Button1: TButton;
Button2: TButton;
IdUDPClient1: TIdUDPClient;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private { Private declarations }
public { Public declarations }
end;

var Form1: TForm1;
CapWnd:THandle; //¶¨Òå²¶×½´°¾ä±ú
CapParms:TcaptureParms; //ÓÃÓÚÉèÖÃÉ豸ÊôÐԵĽṹ±äÁ¿
BMPINFO:TBitmapInfo; //BMPͼÏñÐÅÏ¢
implementation{$R *.dfm}
function FrameCallBack(hWnd: HWND; lpVHdr: PVIDEOHDR): LongInt;stdcall;
var hd:Thandle;
jpg:TJpegImage;
memStream :TMemoryStream;
Bitmap:TBitmap;
begin //½«Êý¾ÝÏÔÔÚImage£¬
Bitmap:=TBitmap.Create;
Bitmap.Width :=BMPINFO.bmiHeader.biWidth;
// New size of Bitmap
Bitmap.Height:=BMPINFO.bmiHeader.biHeight;
hd:= DrawDibOpen;
DrawDibDraw(hd,Bitmap.canvas.handle,0,0,BMPINFO.BmiHeader.biwidth,BMPINFO._
¡¡bmiheader.biheight,@BMPINFO.bmiHeader,_
¡¡lpVHdr^.lpData,0,0,BMPINFO.bmiHeader.biWidth,BMPINFO.bmiHeader.biheight,0);
DrawDibClose(hd);
//·¢ËÍÊý¾Ý
memStream := TMemoryStream.Create;
jpg := TJpegImage.Create; jpg.Assign(Bitmap);
jpg.CompressionQuality := 10;
//jpgѹËõÖÊÁ¿
jpg.JPEGNeeded;
jpg.Compress;
jpg.SaveToStream(memStream);
jpg.Free;
//ÒòΪUDPÊý¾Ý°üÓдóСÏÞÖÆ£¬ÕâÀïÈç¹û³¬³ö²¿·Ö£¬¾ÍûÓд«Ê䣬ÍêÈ«¿ÉÒÔ·¢¼¸´Î·¢³öÈ¥
Form1.IdUDPClient1.BroadcastEnabled:=true;//Óù㲥¹¦ÄÜ
if memStream.Size>Form1.IdUDPClient1.BufferSize then
¡¡//Ïò192.168.0.XÍø¶Î¹ã²¥£¬¶Ë¿Ú 9001
¡¡Form1.IdUDPClient1.SendBuffer('192.168.0.255',9001,memStream.Memory^,Form1.IdUDPClient1.BufferSize)
else
¡¡Form1.IdUDPClient1.SendBuffer('192.168.0.255',9001,memStream.Memory^,memStream.Size);
¡¡memStream.Free;
¡¡Bitmap.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
¡¡CapWnd := capCreateCaptureWindow('ÎҵĴ°¿Ú', WS_VISIBLE or WS_CHILD,//´°¿ÚÑùʽ
¡¡¡¡0, //X×ø±ê
¡¡¡¡0, //Y×ø±ê
¡¡¡¡panel1.Width, //´°¿Ú¿í
¡¡¡¡panel1.Height, //´°¿Ú¸ß
¡¡¡¡panel1.handle, //´°¿Ú¾ä±ú
¡¡¡¡0); //ͨ³£Îª0
if CapWnd = 0 then exit; //¶¨ÒåÖ¡²¶×½»Øµ÷º¯Êý
CapSetCallbackOnFrame(CapWnd,FrameCallBack);
CapParms.dwRequestMicroSecPerFrame:=1;
CapParms.fLimitEnabled:=FALSE;
CapParms.fCaptureAudio:=FALSE;
CapParms.fMCIControl:=FALSE;
CapParms.fYield:=TRUE;
CapParms.vKeyAbort:=VK_ESCAPE;
CapParms.fAbortLeftMouse:=False;
CapParms.fAbortRightMouse:=FALSE; //ÈÃÉèÖÃÉúЧ
CapCaptureSetSetup(capWnd,@CapParms,sizeof(TCAPTUREPARMS));
CapPreviewRate(capWnd,33); //ÉèÖÃÔ¤ÀÀÊÓÆµµÄƵÂÊ
CapCaptureSequenceNoFile(capWnd); //Èç¹ûÒª²¶×½ÊÓÆµÁ÷£¬ÔòҪʹÓú¯ÊýÀ´Ö¸¶¨²»Éú³ÉÎļþ£¬²»È»»á×Ô¶¯Éú³ÉAVIÎļþ
CapDriverConnect(CapWnd,0); //Á¬½ÓÉãÏñÍ·É豸£¬µÚ¶þ¸ö²ÎÊýÊǸöÐòºÅ£¬µ±ÏµÍ³ÖÐ×°Óжà¸öÏÔʾÇý¶¯³ÌÐòʱ£¬ÆäÖµ·Ö±ðÒÀ´ÎΪ0µ½×ܸöÊýÈç¹ûÓжà¸öÉãÏñÍ·£¬ÄÇô¾ÍÊÇ0->1->2 capGetVideoFormat(capWnd, @BMPINFO,sizeof(TBitmapInfo)); //È¡µÃÊÓÆµÍ¼ÏñÊý¾ÝÍ·
CapPreviewScale(capWnd,TRUE); //ÊÇ·ñËõ·Å
CapOverlay(capWnd,true); //Ö¸¶¨ÊÇ·ñʹÓõþ¼Óģʽ£¬trueΪʹÓ㬷ñÔòΪfalse CapPreview(capWnd,true);end;procedure TForm1.Button2Click(Sender: TObject);
begin capCaptureAbort(CapWnd); //Í£Ö¹²¶×½
capDriverDisconnect(CapWnd); //½«²¶×½´°Í¬Çý¶¯Æ÷¶Ï¿ª
end;
end.
4Â¥2010-12-02 16:39:33
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
¡î ÎÞÐǼ¶ ¡ï Ò»ÐǼ¶ ¡ï¡ï¡ï ÈýÐǼ¶ ¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 0703»¯Ñ§µ÷¼Á +10 ÄÝÄÝninicgb 2026-03-15 14/700 2026-03-19 22:59 by ѧԱ8dgXkO
[¿¼ÑÐ] 321Çóµ÷¼Á +8 ºÎÈó²É123 2026-03-18 10/500 2026-03-19 16:46 by ºÎÈó²É123
[¿¼ÑÐ] ²ÄÁÏÓ뻯¹¤Çóµ÷¼Á +7 Ϊѧ666 2026-03-16 7/350 2026-03-19 14:48 by ¾¡Ë´Ò¢1
[¿¼ÑÐ] Çóµ÷¼Á +3 Mqqqqqq 2026-03-19 3/150 2026-03-19 14:11 by peike
[¿¼ÑÐ] Ò»Ö¾Ô¸985£¬±¾¿Æ211£¬0817»¯Ñ§¹¤³ÌÓë¼¼Êõ319Çóµ÷¼Á +10 Liwangman 2026-03-15 10/500 2026-03-19 10:25 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 332Çóµ÷¼Á +3 ydfyh 2026-03-17 3/150 2026-03-19 10:14 by ¹¦·ò·è¿ñ
[¿¼ÑÐ] 344Çóµ÷¼Á +6 knight344 2026-03-16 7/350 2026-03-18 20:13 by walc
[¿¼ÑÐ] 085601ר˶£¬×Ü·Ö342Çóµ÷¼Á£¬µØÇø²»ÏÞ +5 share_joy 2026-03-16 5/250 2026-03-18 14:48 by haxia
[¿¼ÑÐ] 303Çóµ÷¼Á +4 î£08 2026-03-17 6/300 2026-03-18 11:01 by Iveryant
[¿¼ÑÐ] 293Çóµ÷¼Á +11 zjlµÄºÅ 2026-03-16 16/800 2026-03-18 08:10 by zhukairuo
[¿¼ÑÐ] 301Çóµ÷¼Á +4 A_JiXing 2026-03-16 4/200 2026-03-17 17:32 by ruiyingmiao
[¿¼ÑÐ] Ò»Ö¾Ô¸ÄϾ©´óѧ£¬080500²ÄÁÏ¿ÆÑ§Ó빤³Ì£¬µ÷¼Á +4 Jy? 2026-03-16 4/200 2026-03-17 11:02 by gaoqiong
[¿¼ÑÐ] 326Çóµ÷¼Á +4 ŵ±´¶û»¯Ñ§½±êéê 2026-03-15 7/350 2026-03-16 17:11 by ŵ±´¶û»¯Ñ§½±êéê
[¿¼ÑÐ] 318Çóµ÷¼Á +3 Yanyali 2026-03-15 3/150 2026-03-16 16:41 by houyaoxu
[¿¼ÑÐ] 321Çóµ÷¼Á +5 ´óÃ×·¹£¡ 2026-03-15 5/250 2026-03-16 16:33 by houyaoxu
[¿¼ÑÐ] 326Çóµ÷¼Á +3 mlpqaz03 2026-03-15 3/150 2026-03-16 07:33 by Iveryant
[¿¼ÑÐ] ÇóÀÏʦÊÕÁôµ÷¼Á +4 jiang½ª66 2026-03-14 5/250 2026-03-15 20:11 by Winj1e
[¿¼ÑÐ] 0856ר˶279Çóµ÷¼Á +5 ¼ÓÓͼÓÓÍ£¡? 2026-03-15 5/250 2026-03-15 11:58 by 2020015
[¿¼ÑÐ] 304Çóµ÷¼Á +7 7712b 2026-03-13 7/350 2026-03-13 21:42 by peike
[¿¼ÑÐ] 290Çóµ÷¼Á +3 ADT 2026-03-13 3/150 2026-03-13 10:19 by peike
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û