²é¿´: 2035  |  »Ø¸´: 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: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µÄ»ØÌû

zyj8119

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


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

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

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

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

¡¡¡¡3.2.2ÔÚ³ÌÐò´°¿ÚForm2ÉÏ·ÅÖÃÒ»¸öimage¿Ø¼þ£¬¸Ã¿Ø¼þÓÃÓÚ½ÓÊÕµÄͼÏñÄÚÈÝ£¬ÔÙ·ÅÖÃÒ»¸öTbutton¿Ø¼þ£¬captionΪ"½ÓÊÕ",£¬·ÅÖÃÒ»¸öUDPServer×é¼þ£¬ÕâÀïÓÃindyµÄIdUDPServerÓÃÀ´½ÓÊÕÍøÂçÊÓÆµ£¬Èçͼʾ£º

¡¡¡¡½ÓÊÕ°´Å¥´úÂ룺



IdUDPServer1.DefaultPort:=9001; //½ÓÊÕ¶Ë¿Ú IdUDPServer1.Active:=true; //ÆôÓÃ



¡¡¡¡IdUDPServer1µÄUDPReadʼþ´úÂ룺



var jpg:TJpegImage;begin try jpg := TJpegImage.Create; jpg.LoadFromStream(Adata); Image1.Picture.Bitmap.Assign(jpg); jpg.Free; exceptend;end;



¡¡¡¡ÊÓÆµµÄ´«ÊäÊÇѹËõ³ÉJPG½øÐд«ÊäµÄ£¬·þÎñÆ÷¶ËºÍ½ÓÊն˶¼Óõ½ÁËjpegµ¥Ôª£¬ËùÒÔuseÖж¼Òª¼ÓÈëjpeg¡£

¡¡¡¡ÍêÕûµÄÊÓÆµÁÄÌìÈí¼þ¿Í»§¶Ë´úÂ룺



unit Unit2;
interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdUDPBase, IdUDPServer, ExtCtrls,jpeg,IdSocketHandle;
type TForm1 = class(TForm) Image1: TImage;
IdUDPServer1: TIdUDPServer;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure IdUDPServer1UDPRead(Sender: TObject;
AData: TStream; ABinding: TIdSocketHandle);
private { Private declarations }
public
{
¡¡Public declarations
}
end;
var Form1: TForm1;
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
¡¡IdUDPServer1.DefaultPort:=9001; //½ÓÊÕ¶Ë¿Ú
¡¡IdUDPServer1.Active:=true; //ÆôÓÃ
end;
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject;AData: TStream; ABinding: TIdSocketHandle);
var jpg:TJpegImage;
begin
¡¡try
¡¡¡¡jpg := TJpegImage.Create;
¡¡¡¡jpg.LoadFromStream(Adata);
¡¡¡¡Image1.Picture.Bitmap.Assign(jpg);
¡¡¡¡jpg.Free;
¡¡¡¡except
end;
end;
end.



¡¡¡¡ºÃÁË£¬µ½ÕâÀï³ÌÐò´úÂëÒ²¾ÍдÍêÁË¡£ÔÚ»úÉÏÔËÐÐÊÓÆµÁÄÌìÈí¼þ·þÎñÆ÷³ÌÐò£¬µã¿ªÊ¼¾Í¿ªÊ¼½øÐÐÊÓÆµµÄ´«ÊäÁË£¬ÔÚÍøÂçÉÏ£¨Íø¶ÎΪ192.168.0.X£¬¸ù¾ÝÄãµÄÍøÂçÉèÖÃIPµØÖ·£¬ÎÒÕâÓõľÖÓòÍø²âÊÔ£©µÄÈκÎһ̨»úÉÏÔËÐÐÊÓÆµÁÄÌìÈí¼þ¿Í»§¶Ëµã½ÓÊÕ¶¼ÄܽÓÊÕµ½ÊÓÆµÁË¡£

¡¡¡¡Èç¹ûÒª½ÓÊÕµÄÊÓÆµÄÚÈÝÇåÎúµã£¬¿ÉÒÔÉèÖÃjpg.CompressionQuality:=10;£¨Õâ¸öÖµ¿ÉÒÔÊÇ´Ó1ÖÁ100£¬ÊýÖµÔ½´ó£¬Í¼ÏñÔ½ÇåÎú£¬µ±È»´«ÊäµÄËÙ¶È»áÔ½ÂýÁË£¬Í¼ÏñÔ½ÇåÎú£¬Êý¾Ý°ü¾Í»áÔ½´ó£¬Èç¹û³¬³öÁËUDP°üÏÞÖÆ£¬¿´µ½Í¼Ïñ¾Í²»ÍêÕûÁË£©
5Â¥2010-12-02 16:40:36
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢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µÄ»ØÌû

zyj8119

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


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


ÊÓÆµÁÄÌìÈí¼þ·þÎñÆ÷


ÁÄÌìÈí¼þ¿Í»§¶Ë
¡¡ËÄ¡¢½áÊøÓï

¡¡¡¡ÔÚÕâÀÎÒ°Ñ×Ô¼ºµÄһЩ¾­ÑéºÍ´úÂëÄóöÀ´Óë´ó¼ÒÒ»Æð·ÖÏí£¬Çë¸ßÊÖ²»ÒªÈÓ¼¦µ°°¡£¬ÎÒÕæµÄÊÇ»¨Á˲»ÉÙÁ¦ÆøµÄ£¡¿´ÁËÕâÆªÎÄÕºó£¬ÏàÐÅÄãÒ²¿ÉÒÔ×Ô¼º¶¯ÊÖ×öÒ»¸öÍøÂçÊÓÆµÁÄÌìÈí¼þ£¬Ò²¿ÉÒÔ×ö¸öÀàËÆMSN¡¢QQ¡¢E»°Í¨Ò»ÑùµÄÊÓÆµÁÄÌìÈí¼þ£¬ÓÐÁËÍøÂçÊÓÆµ¾Í¿ÉÒÔÔÚǧÀïÖ®ÍâºÍ¼ÒÈ˽øÐпÉÊÓͨѶÁË¡£ÉÏÃæµÄʾÀý³ÌÐò»¹ÓÐºÜ¶àµØ·½ÐèÒª¸Ä½øµÄ£¬±ÈÈçÊÓÆµµÄѹËõ¿ÉÒÔÓÃÆäËüÊÓÆµÑ¹Ëõ±àÂëÆ÷½øÐÐѹËõ£¬ÕâÀïÖ»½²ÁË´«ÊäͼÏñ£¬²¢Ã»ÓÐÉùÒô£¬ÔÙ¸ÄһϾͲÅÄÜ´«ÊäÒôÊÓÆµÁË£¬ÓÐÐËȤµÄÅóÓѲ»·Á×Ô¼º¶¯ÊÖÈ¥ÊÔÒ»ÊÔ¡£
7Â¥2010-12-02 16:42:52
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

fdy0910

гæ (³õÈëÎÄ̳)


¡ï¡ï¡ï ÈýÐǼ¶,Ö§³Ö¹ÄÀø

²»´í
8Â¥2012-06-19 10:21:19
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

wangybcn

½û³æ (ÕýʽдÊÖ)

±¾ÌûÄÚÈݱ»ÆÁ±Î

9Â¥2012-06-20 13:03:25
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ zyj8119 µÄÖ÷Ìâ¸üÐÂ
¡î ÎÞÐǼ¶ ¡ï Ò»ÐǼ¶ ¡ï¡ï¡ï ÈýÐǼ¶ ¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] »¯Ñ§¹¤³Ì321·ÖÇóµ÷¼Á +9 ´óÃ×·¹£¡ 2026-03-15 12/600 2026-03-16 21:59 by ´óÃ×·¹£¡
[¿¼ÑÐ] 211±¾£¬11408Ò»Ö¾Ô¸ÖпÆÔº277·Ö£¬ÔøÔÚÖпÆÔº×Ô¶¯»¯Ëùʵϰ +3 Losir 2026-03-12 4/200 2026-03-16 21:52 by Losir
[¿¼ÑÐ] ¿¼Ñл¯Ñ§Ñ§Ë¶µ÷¼Á£¬Ò»Ö¾Ô¸985 +3 ÕÅvvvv 2026-03-15 5/250 2026-03-16 20:25 by ÕÅvvvv
[¿¼ÑÐ] 326Çóµ÷¼Á +4 ŵ±´¶û»¯Ñ§½±êéê 2026-03-15 7/350 2026-03-16 17:11 by ŵ±´¶û»¯Ñ§½±êéê
[¿¼ÑÐ] Ò»Ö¾Ô¸985£¬±¾¿Æ211£¬0817»¯Ñ§¹¤³ÌÓë¼¼Êõ319Çóµ÷¼Á +5 Liwangman 2026-03-15 5/250 2026-03-16 17:10 by ÎҵĴ¬Îҵĺ£
[¿¼ÑÐ] 283Çóµ÷¼Á +10 С¥¡£ 2026-03-12 14/700 2026-03-16 16:08 by 13811244083
[¿¼ÑÐ] 304Çóµ÷¼Á +6 СÐÜjoy 2026-03-14 6/300 2026-03-16 12:59 by Iveryant
[¿¼ÑÐ] 0703»¯Ñ§µ÷¼Á 290·ÖÓпÆÑо­Àú£¬ÂÛÎÄÔÚͶ +7 ÄåÄågk 2026-03-14 7/350 2026-03-16 10:12 by houyaoxu
[¿¼ÑÐ] 311Çóµ÷¼Á +6 ¶¬Ê®Èý 2026-03-15 6/300 2026-03-16 08:00 by wang_dand
[¿¼ÑÐ] 294Çóµ÷¼Á +3 Zys010410@ 2026-03-13 4/200 2026-03-15 10:59 by zhq0425
[¿¼ÑÐ] Öпƴó²ÄÁÏÓ뻯¹¤319Çóµ÷¼Á +3 ÃÏöβÄÁÏ 2026-03-14 3/150 2026-03-14 20:10 by ms629
[¿¼ÑÐ] 341Çóµ÷¼Á +4 ·¬ÇÑÍ·--- 2026-03-10 4/200 2026-03-13 23:12 by JourneyLucky
[¿¼ÑÐ] ²ÄÁÏ371Çóµ÷¼Á +9 öùÓã? 2026-03-11 11/550 2026-03-13 22:53 by JourneyLucky
[¿¼ÑÐ] 315Çóµ÷¼Á +9 СÑòСÑò_ 2026-03-11 10/500 2026-03-13 21:13 by SXNUÀîÀÏʦ
[¿¼ÑÐ] Çóµ÷¼Á +7 18880831720 2026-03-11 7/350 2026-03-13 16:10 by JourneyLucky
[¿¼ÑÐ] 290Çóµ÷¼Á +7 ADT 2026-03-12 7/350 2026-03-13 15:17 by JourneyLucky
[¿¼ÑÐ] 308Çóµ÷¼Á +3 ÊÇLupa°¡ 2026-03-12 3/150 2026-03-13 14:30 by Çóµ÷¼Ázz
[¿¼ÑÐ] 333Çóµ÷¼Á +3 152697 2026-03-12 4/200 2026-03-13 07:08 by Iveryant
[¿¼ÑÐ] ´óÁ¬´óѧ»¯Ñ§×¨ÒµÑо¿Éúµ÷¼Á +3 ç÷¾Ã. 2026-03-10 8/400 2026-03-11 10:02 by ç÷¾Ã.
[¿¼ÑÐ] Ò»Ö¾Ô¸£ºÎ人Àí¹¤£¬²ÄÁϹ¤³Ì£¬Ó¢¶þÊý¶þ ×Ü·Ö314 +3 2202020125 2026-03-10 4/200 2026-03-10 13:54 by xiongyaxuan
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û