<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Webcam, c++]]></title><description><![CDATA[<p>Hallo bin neu in der Programierung und habe dein ein Problem wo ich nicht weiter komme<br />
ich habe diesen Code im www gefunden</p>
<p>#include &lt;vcl.h&gt;<br />
#pragma hdrstop</p>
<p>#include &lt;stdio.h&gt;<br />
#include &lt;clipbrd.hpp&gt;<br />
#include &lt;algorith.h&gt;<br />
#include &quot;c_cap.h&quot;</p>
<p>// ---------------------------------------------------------------------------<br />
#pragma package(smart_init)</p>
<p>TCap *pCap = NULL;</p>
<p>LRESULT PASCAL cap_CallbackProc(HWND hWnd, LPVIDEOHDR lpVHdr);</p>
<p>// ---------------------------------------------------------------------------<br />
// Callback<br />
// ---------------------------------------------------------------------------<br />
LRESULT PASCAL cap_CallbackProc(HWND hWnd, LPVIDEOHDR lpVHdr) {<br />
int vfs;<br />
int xx, yy, ix = 0;<br />
unsigned char *pByte;<br />
void *pData;<br />
BITMAPINFO BmpInfo;</p>
<p>if (!pCap)<br />
return(-1);</p>
<p>capGetVideoFormat(pCap-&gt;hwndVideo, &amp;BmpInfo, sizeof(BITMAPINFO));<br />
pCap-&gt;OnFrame();<br />
SendMessage(pCap-&gt;ParentHandle, UM_CAPONFRAME, 0, 0);<br />
return 0;<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// Constructor<br />
// ---------------------------------------------------------------------------<br />
__fastcall TCap::TCap(HWND Handle) {<br />
RECT Rect;</p>
<p>pCap = this;<br />
pBitMapFrame = NULL;<br />
// create video capture window<br />
ParentHandle = Handle;</p>
<p>GetClientRect(ParentHandle, &amp;Rect);<br />
/*<br />
SetWindowPos(hwndVideo, NULL, 0, 0, Rect.right-Rect.left,<br />
Rect.bottom-Rect.top , SWP_NOZORDER | SWP_NOMOVE);<br />
*/</p>
<p>hwndVideo = capCreateCaptureWindow((LPSTR)&quot;My Capture Window&quot;,<br />
WS_CHILD | WS_VISIBLE, 0, 0, Rect.right - Rect.left,<br />
Rect.bottom - Rect.top, (HWND)Handle, (int)1);</p>
<p>capOverlay(hwndVideo, true);</p>
<p>pStringCapDrivers = new TStringList;<br />
SelectedDevice = -1;<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// Destructor<br />
// ---------------------------------------------------------------------------<br />
__fastcall TCap::~TCap() {</p>
<p>delete pStringCapDrivers;</p>
<p>capPreview(hwndVideo, FALSE); // end preview<br />
capDriverConnect(hwndVideo, SelectedDevice);<br />
capDriverDisconnect(hwndVideo); // disconnect from driver<br />
delete pBitMapFrame;<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// enumerate the installed capture drivers<br />
// ---------------------------------------------------------------------------<br />
int TCap::EnumCapDrv() {<br />
char szDeviceName[80]; // driver name<br />
char szDeviceVersion[80]; // driver version<br />
AnsiString Str; // concatinated string<br />
int xcap; // counter</p>
<p>pStringCapDrivers-&gt;Clear();<br />
for (xcap = 0; xcap &lt; 10; xcap++) {<br />
if (capGetDriverDescription(xcap, szDeviceName, sizeof(szDeviceName), szDeviceVersion, sizeof(szDeviceVersion))) {<br />
Str.sprintf(&quot;%s, %s&quot;, szDeviceName, szDeviceVersion);<br />
pStringCapDrivers-&gt;AddObject(Str, (TObject*)xcap);<br />
}<br />
}</p>
<p>return 0;<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// connecting to selected device and starts preview<br />
// ---------------------------------------------------------------------------<br />
void TCap::Connect(int Selected) {<br />
CAPSTATUS CapStatus;<br />
int hsize;</p>
<p>// capDlgVideoDisplay(hwndVideo);<br />
// connect to the driver<br />
if (SelectedDevice != -1) {<br />
capPreview(hwndVideo, FALSE);<br />
capDriverConnect(hwndVideo, SelectedDevice);<br />
}</p>
<p>if (!capDriverConnect(hwndVideo, Selected)) {<br />
// ---- Unable to connect to driver<br />
return;<br />
}</p>
<p>// update the driver capabilities<br />
capDriverGetCaps(hwndVideo, sizeof(CAPDRIVERCAPS), &amp;CapDrvCaps);</p>
<p>capSetCallbackOnFrame(hwndVideo, cap_CallbackProc);</p>
<p>capDlgVideoFormat(ParentHandle);</p>
<p>// Are there new image dimensions<br />
capGetStatus(hwndVideo, &amp;CapStatus, sizeof(CAPSTATUS));<br />
hdc = GetDC(hwndVideo);</p>
<p>hsize = GetSystemMetrics(SM_CYMENU);<br />
hsize += GetSystemMetrics(SM_CYCAPTION);</p>
<p>// ---- Rescaling the windows<br />
/*<br />
SetWindowPos(hwndVideo, NULL, 0, 0, CapStatus.uiImageWidth,<br />
CapStatus.uiImageHeight, SWP_NOZORDER | SWP_NOMOVE);<br />
SetWindowPos(ParentHandle, NULL, 0, hsize, CapStatus.uiImageWidth,<br />
CapStatus.uiImageHeight+hsize, SWP_NOZORDER | SWP_NOMOVE);<br />
*/<br />
Height = CapStatus.uiImageHeight;<br />
Width = CapStatus.uiImageWidth;</p>
<p>// set preview rate to 33.3 miliseconds, or 30 FPS<br />
capPreviewRate(hwndVideo, 33.3);</p>
<p>// start preview video<br />
capPreview(hwndVideo, TRUE);</p>
<p>capPreviewScale(hwndVideo, TRUE);</p>
<p>// ---- Get extended information on the capture device<br />
capCaptureGetSetup(hwndVideo, &amp;CapParms, sizeof(CapParms));</p>
<p>CapParms.dwRequestMicroSecPerFrame = 66667 * 0.5;<br />
CapParms.fYield = FALSE;<br />
CapParms.fCaptureAudio = FALSE;</p>
<p>capCaptureSetSetup(hwndVideo, &amp;CapParms, sizeof(CapParms));</p>
<p>// ---- Remember selected device<br />
SelectedDevice = Selected;<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// Get access to the video source format box<br />
// ---------------------------------------------------------------------------<br />
void TCap::Format() {<br />
int hsize;</p>
<p>CAPSTATUS CapStatus;</p>
<p>capDlgVideoFormat(hwndVideo);</p>
<p>// Are there new image dimensions<br />
capGetStatus(hwndVideo, &amp;CapStatus, sizeof(CAPSTATUS));</p>
<p>hsize = GetSystemMetrics(SM_CYMENU);<br />
hsize += GetSystemMetrics(SM_CYCAPTION);</p>
<p>SetWindowPos(ParentHandle, NULL, 0, hsize, CapStatus.uiImageWidth,<br />
CapStatus.uiImageHeight + hsize, SWP_NOZORDER | SWP_NOMOVE);<br />
SetWindowPos(hwndVideo, NULL, 0, 0, CapStatus.uiImageWidth,<br />
CapStatus.uiImageHeight, SWP_NOZORDER | SWP_NOMOVE);</p>
<p>if (pBitMapFrame) {<br />
delete pBitMapFrame;<br />
pBitMapFrame = NULL;<br />
}<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// Resize<br />
// ---------------------------------------------------------------------------<br />
void TCap::Resize() {<br />
RECT Rect;</p>
<p>GetClientRect(ParentHandle, &amp;Rect);</p>
<p>SetWindowPos(hwndVideo, NULL, 0, 0, Rect.right - Rect.left,<br />
Rect.bottom - Rect.top, SWP_NOZORDER | SWP_NOMOVE);<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// Preview<br />
// ---------------------------------------------------------------------------<br />
void TCap::Preview(bool Enabled) {<br />
// preview video<br />
capPreview(hwndVideo, Enabled);<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// CaptureFrame<br />
// ---------------------------------------------------------------------------<br />
void TCap::CaptureFrame(void) {<br />
// preview video<br />
capCaptureSingleFrame(hwndVideo);<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// Get access to the video source dialog box<br />
// ---------------------------------------------------------------------------<br />
void TCap::Source() {<br />
capDlgVideoSource(hwndVideo);<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// capture a frame and save it<br />
// ---------------------------------------------------------------------------<br />
void TCap::SaveToFile(char *FileName) {<br />
capFileSaveDIB(hwndVideo, FileName);<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// CopyToClipBoard<br />
// ---------------------------------------------------------------------------<br />
void TCap::CopyToClipBoard() {<br />
capEditCopy(hwndVideo);<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// CopyToBitmap<br />
// ---------------------------------------------------------------------------<br />
void TCap::CopyToBitmap(Graphics::TBitmap *BitMap) {<br />
TClipboard *pCB = Clipboard();</p>
<p>capEditCopy(hwndVideo);<br />
BitMap-&gt;LoadFromClipboardFormat(CF_BITMAP, pCB-&gt;GetAsHandle(CF_BITMAP), 0);<br />
EmptyClipboard();<br />
return;</p>
<p>if (!pBitMapFrame) {<br />
pBitMapFrame = new Graphics::TBitmap;<br />
pBitMapFrame-&gt;Width = Width;<br />
pBitMapFrame-&gt;Height = Height;<br />
pCap-&gt;pBitMapFrame-&gt;PixelFormat = pf32bit;<br />
pCap-&gt;BitSize = 3;<br />
}</p>
<p>COLORREF PixelColor;<br />
int xx, yy;<br />
int *pData;</p>
<p>for (yy = 0; yy &lt; pCap-&gt;pBitMapFrame-&gt;Height; yy++) {<br />
pData = (int*)pCap-&gt;pBitMapFrame-&gt;ScanLine[yy];<br />
for (xx = 0; xx &lt; pCap-&gt;pBitMapFrame-&gt;Width; xx++) {<br />
PixelColor = GetPixel(hdc, xx, yy);<br />
pData[xx] = PixelColor;<br />
}<br />
}<br />
BitMap-&gt;Assign(pBitMapFrame);<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// virtual On Frame function to react on a new frame<br />
// ---------------------------------------------------------------------------<br />
void TCap::OnFrame(void) {</p>
<p>}</p>
<p>// ---------------------------------------------------------------------------<br />
//<br />
// ---------------------------------------------------------------------------<br />
void TCap::VideoCompression(void) {<br />
HIC hIC;<br />
try {</p>
<p>/*<br />
hIC = ICLocate (ICTYPE_VIDEO, 1L, (LPBITMAPINFOHEADER) &amp;hdc, NULL, ICMODE_COMPRESS);</p>
<p>ICConfigure (hIC, hwndVideo);<br />
*/<br />
capDlgVideoCompression(hwndVideo);<br />
}<br />
catch(...) {<br />
}<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
//<br />
// ---------------------------------------------------------------------------<br />
void TCap::SetCaptureFile(AnsiString FileName) {<br />
capFileSetCaptureFile(hwndVideo, FileName.c_str());<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
//<br />
// ---------------------------------------------------------------------------<br />
void TCap::Stop() {<br />
capCaptureStop(hwndVideo);<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
//<br />
// ---------------------------------------------------------------------------<br />
void TCap::Capture() {<br />
CAPTUREPARMS CaptureParms;<br />
BITMAPINFO BitmapInfo;</p>
<p>capCaptureGetSetup(hwndVideo, &amp;CaptureParms, sizeof(CAPTUREPARMS));<br />
CaptureParms.fAbortLeftMouse = false;<br />
CaptureParms.fAbortRightMouse = false;<br />
// CaptureParms.vKeyAbort = NULL;<br />
capCaptureSetSetup(hwndVideo, &amp;CaptureParms, sizeof(CAPTUREPARMS));</p>
<p>capGetVideoFormat(hwndVideo, &amp;BitmapInfo, sizeof(BITMAPINFO));<br />
capCaptureSequence(hwndVideo);<br />
}</p>
<p>jetzt habe ich versuche alles was ich nicht brauche wegzulassen ...<br />
also das er ein einzelnes bild auf der festplatte speichert<br />
aber immer wenn ich das mache stürzt das program ab habt ihr nen Tip?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/266615/webcam-c</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 06:20:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/266615.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 May 2010 15:12:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Webcam, c++ on Tue, 11 May 2010 15:12:18 GMT]]></title><description><![CDATA[<p>Hallo bin neu in der Programierung und habe dein ein Problem wo ich nicht weiter komme<br />
ich habe diesen Code im www gefunden</p>
<p>#include &lt;vcl.h&gt;<br />
#pragma hdrstop</p>
<p>#include &lt;stdio.h&gt;<br />
#include &lt;clipbrd.hpp&gt;<br />
#include &lt;algorith.h&gt;<br />
#include &quot;c_cap.h&quot;</p>
<p>// ---------------------------------------------------------------------------<br />
#pragma package(smart_init)</p>
<p>TCap *pCap = NULL;</p>
<p>LRESULT PASCAL cap_CallbackProc(HWND hWnd, LPVIDEOHDR lpVHdr);</p>
<p>// ---------------------------------------------------------------------------<br />
// Callback<br />
// ---------------------------------------------------------------------------<br />
LRESULT PASCAL cap_CallbackProc(HWND hWnd, LPVIDEOHDR lpVHdr) {<br />
int vfs;<br />
int xx, yy, ix = 0;<br />
unsigned char *pByte;<br />
void *pData;<br />
BITMAPINFO BmpInfo;</p>
<p>if (!pCap)<br />
return(-1);</p>
<p>capGetVideoFormat(pCap-&gt;hwndVideo, &amp;BmpInfo, sizeof(BITMAPINFO));<br />
pCap-&gt;OnFrame();<br />
SendMessage(pCap-&gt;ParentHandle, UM_CAPONFRAME, 0, 0);<br />
return 0;<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// Constructor<br />
// ---------------------------------------------------------------------------<br />
__fastcall TCap::TCap(HWND Handle) {<br />
RECT Rect;</p>
<p>pCap = this;<br />
pBitMapFrame = NULL;<br />
// create video capture window<br />
ParentHandle = Handle;</p>
<p>GetClientRect(ParentHandle, &amp;Rect);<br />
/*<br />
SetWindowPos(hwndVideo, NULL, 0, 0, Rect.right-Rect.left,<br />
Rect.bottom-Rect.top , SWP_NOZORDER | SWP_NOMOVE);<br />
*/</p>
<p>hwndVideo = capCreateCaptureWindow((LPSTR)&quot;My Capture Window&quot;,<br />
WS_CHILD | WS_VISIBLE, 0, 0, Rect.right - Rect.left,<br />
Rect.bottom - Rect.top, (HWND)Handle, (int)1);</p>
<p>capOverlay(hwndVideo, true);</p>
<p>pStringCapDrivers = new TStringList;<br />
SelectedDevice = -1;<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// Destructor<br />
// ---------------------------------------------------------------------------<br />
__fastcall TCap::~TCap() {</p>
<p>delete pStringCapDrivers;</p>
<p>capPreview(hwndVideo, FALSE); // end preview<br />
capDriverConnect(hwndVideo, SelectedDevice);<br />
capDriverDisconnect(hwndVideo); // disconnect from driver<br />
delete pBitMapFrame;<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// enumerate the installed capture drivers<br />
// ---------------------------------------------------------------------------<br />
int TCap::EnumCapDrv() {<br />
char szDeviceName[80]; // driver name<br />
char szDeviceVersion[80]; // driver version<br />
AnsiString Str; // concatinated string<br />
int xcap; // counter</p>
<p>pStringCapDrivers-&gt;Clear();<br />
for (xcap = 0; xcap &lt; 10; xcap++) {<br />
if (capGetDriverDescription(xcap, szDeviceName, sizeof(szDeviceName), szDeviceVersion, sizeof(szDeviceVersion))) {<br />
Str.sprintf(&quot;%s, %s&quot;, szDeviceName, szDeviceVersion);<br />
pStringCapDrivers-&gt;AddObject(Str, (TObject*)xcap);<br />
}<br />
}</p>
<p>return 0;<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// connecting to selected device and starts preview<br />
// ---------------------------------------------------------------------------<br />
void TCap::Connect(int Selected) {<br />
CAPSTATUS CapStatus;<br />
int hsize;</p>
<p>// capDlgVideoDisplay(hwndVideo);<br />
// connect to the driver<br />
if (SelectedDevice != -1) {<br />
capPreview(hwndVideo, FALSE);<br />
capDriverConnect(hwndVideo, SelectedDevice);<br />
}</p>
<p>if (!capDriverConnect(hwndVideo, Selected)) {<br />
// ---- Unable to connect to driver<br />
return;<br />
}</p>
<p>// update the driver capabilities<br />
capDriverGetCaps(hwndVideo, sizeof(CAPDRIVERCAPS), &amp;CapDrvCaps);</p>
<p>capSetCallbackOnFrame(hwndVideo, cap_CallbackProc);</p>
<p>capDlgVideoFormat(ParentHandle);</p>
<p>// Are there new image dimensions<br />
capGetStatus(hwndVideo, &amp;CapStatus, sizeof(CAPSTATUS));<br />
hdc = GetDC(hwndVideo);</p>
<p>hsize = GetSystemMetrics(SM_CYMENU);<br />
hsize += GetSystemMetrics(SM_CYCAPTION);</p>
<p>// ---- Rescaling the windows<br />
/*<br />
SetWindowPos(hwndVideo, NULL, 0, 0, CapStatus.uiImageWidth,<br />
CapStatus.uiImageHeight, SWP_NOZORDER | SWP_NOMOVE);<br />
SetWindowPos(ParentHandle, NULL, 0, hsize, CapStatus.uiImageWidth,<br />
CapStatus.uiImageHeight+hsize, SWP_NOZORDER | SWP_NOMOVE);<br />
*/<br />
Height = CapStatus.uiImageHeight;<br />
Width = CapStatus.uiImageWidth;</p>
<p>// set preview rate to 33.3 miliseconds, or 30 FPS<br />
capPreviewRate(hwndVideo, 33.3);</p>
<p>// start preview video<br />
capPreview(hwndVideo, TRUE);</p>
<p>capPreviewScale(hwndVideo, TRUE);</p>
<p>// ---- Get extended information on the capture device<br />
capCaptureGetSetup(hwndVideo, &amp;CapParms, sizeof(CapParms));</p>
<p>CapParms.dwRequestMicroSecPerFrame = 66667 * 0.5;<br />
CapParms.fYield = FALSE;<br />
CapParms.fCaptureAudio = FALSE;</p>
<p>capCaptureSetSetup(hwndVideo, &amp;CapParms, sizeof(CapParms));</p>
<p>// ---- Remember selected device<br />
SelectedDevice = Selected;<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// Get access to the video source format box<br />
// ---------------------------------------------------------------------------<br />
void TCap::Format() {<br />
int hsize;</p>
<p>CAPSTATUS CapStatus;</p>
<p>capDlgVideoFormat(hwndVideo);</p>
<p>// Are there new image dimensions<br />
capGetStatus(hwndVideo, &amp;CapStatus, sizeof(CAPSTATUS));</p>
<p>hsize = GetSystemMetrics(SM_CYMENU);<br />
hsize += GetSystemMetrics(SM_CYCAPTION);</p>
<p>SetWindowPos(ParentHandle, NULL, 0, hsize, CapStatus.uiImageWidth,<br />
CapStatus.uiImageHeight + hsize, SWP_NOZORDER | SWP_NOMOVE);<br />
SetWindowPos(hwndVideo, NULL, 0, 0, CapStatus.uiImageWidth,<br />
CapStatus.uiImageHeight, SWP_NOZORDER | SWP_NOMOVE);</p>
<p>if (pBitMapFrame) {<br />
delete pBitMapFrame;<br />
pBitMapFrame = NULL;<br />
}<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// Resize<br />
// ---------------------------------------------------------------------------<br />
void TCap::Resize() {<br />
RECT Rect;</p>
<p>GetClientRect(ParentHandle, &amp;Rect);</p>
<p>SetWindowPos(hwndVideo, NULL, 0, 0, Rect.right - Rect.left,<br />
Rect.bottom - Rect.top, SWP_NOZORDER | SWP_NOMOVE);<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// Preview<br />
// ---------------------------------------------------------------------------<br />
void TCap::Preview(bool Enabled) {<br />
// preview video<br />
capPreview(hwndVideo, Enabled);<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// CaptureFrame<br />
// ---------------------------------------------------------------------------<br />
void TCap::CaptureFrame(void) {<br />
// preview video<br />
capCaptureSingleFrame(hwndVideo);<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// Get access to the video source dialog box<br />
// ---------------------------------------------------------------------------<br />
void TCap::Source() {<br />
capDlgVideoSource(hwndVideo);<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// capture a frame and save it<br />
// ---------------------------------------------------------------------------<br />
void TCap::SaveToFile(char *FileName) {<br />
capFileSaveDIB(hwndVideo, FileName);<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// CopyToClipBoard<br />
// ---------------------------------------------------------------------------<br />
void TCap::CopyToClipBoard() {<br />
capEditCopy(hwndVideo);<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// CopyToBitmap<br />
// ---------------------------------------------------------------------------<br />
void TCap::CopyToBitmap(Graphics::TBitmap *BitMap) {<br />
TClipboard *pCB = Clipboard();</p>
<p>capEditCopy(hwndVideo);<br />
BitMap-&gt;LoadFromClipboardFormat(CF_BITMAP, pCB-&gt;GetAsHandle(CF_BITMAP), 0);<br />
EmptyClipboard();<br />
return;</p>
<p>if (!pBitMapFrame) {<br />
pBitMapFrame = new Graphics::TBitmap;<br />
pBitMapFrame-&gt;Width = Width;<br />
pBitMapFrame-&gt;Height = Height;<br />
pCap-&gt;pBitMapFrame-&gt;PixelFormat = pf32bit;<br />
pCap-&gt;BitSize = 3;<br />
}</p>
<p>COLORREF PixelColor;<br />
int xx, yy;<br />
int *pData;</p>
<p>for (yy = 0; yy &lt; pCap-&gt;pBitMapFrame-&gt;Height; yy++) {<br />
pData = (int*)pCap-&gt;pBitMapFrame-&gt;ScanLine[yy];<br />
for (xx = 0; xx &lt; pCap-&gt;pBitMapFrame-&gt;Width; xx++) {<br />
PixelColor = GetPixel(hdc, xx, yy);<br />
pData[xx] = PixelColor;<br />
}<br />
}<br />
BitMap-&gt;Assign(pBitMapFrame);<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
// virtual On Frame function to react on a new frame<br />
// ---------------------------------------------------------------------------<br />
void TCap::OnFrame(void) {</p>
<p>}</p>
<p>// ---------------------------------------------------------------------------<br />
//<br />
// ---------------------------------------------------------------------------<br />
void TCap::VideoCompression(void) {<br />
HIC hIC;<br />
try {</p>
<p>/*<br />
hIC = ICLocate (ICTYPE_VIDEO, 1L, (LPBITMAPINFOHEADER) &amp;hdc, NULL, ICMODE_COMPRESS);</p>
<p>ICConfigure (hIC, hwndVideo);<br />
*/<br />
capDlgVideoCompression(hwndVideo);<br />
}<br />
catch(...) {<br />
}<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
//<br />
// ---------------------------------------------------------------------------<br />
void TCap::SetCaptureFile(AnsiString FileName) {<br />
capFileSetCaptureFile(hwndVideo, FileName.c_str());<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
//<br />
// ---------------------------------------------------------------------------<br />
void TCap::Stop() {<br />
capCaptureStop(hwndVideo);<br />
}</p>
<p>// ---------------------------------------------------------------------------<br />
//<br />
// ---------------------------------------------------------------------------<br />
void TCap::Capture() {<br />
CAPTUREPARMS CaptureParms;<br />
BITMAPINFO BitmapInfo;</p>
<p>capCaptureGetSetup(hwndVideo, &amp;CaptureParms, sizeof(CAPTUREPARMS));<br />
CaptureParms.fAbortLeftMouse = false;<br />
CaptureParms.fAbortRightMouse = false;<br />
// CaptureParms.vKeyAbort = NULL;<br />
capCaptureSetSetup(hwndVideo, &amp;CaptureParms, sizeof(CAPTUREPARMS));</p>
<p>capGetVideoFormat(hwndVideo, &amp;BitmapInfo, sizeof(BITMAPINFO));<br />
capCaptureSequence(hwndVideo);<br />
}</p>
<p>jetzt habe ich versuche alles was ich nicht brauche wegzulassen ...<br />
also das er ein einzelnes bild auf der festplatte speichert<br />
aber immer wenn ich das mache stürzt das program ab habt ihr nen Tip?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1895818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1895818</guid><dc:creator><![CDATA[Nobre]]></dc:creator><pubDate>Tue, 11 May 2010 15:12:18 GMT</pubDate></item><item><title><![CDATA[Reply to Webcam, c++ on Tue, 11 May 2010 15:26:17 GMT]]></title><description><![CDATA[<p>Benutz einen Debugger und finde mit diesem raus, wo und warum der Absturz auftritt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1895829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1895829</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 11 May 2010 15:26:17 GMT</pubDate></item><item><title><![CDATA[Reply to Webcam, c++ on Tue, 11 May 2010 15:30:53 GMT]]></title><description><![CDATA[<p>/*<br />
read_image.c: Foto mit einer Webcam machen und das Bild im PPM-Format ueber stdout ausgeben<br />
*/<br />
# include &lt;stdio.h&gt;<br />
# include &lt;unistd.h&gt;<br />
# include &lt;fcntl.h&gt;<br />
# include &lt;sys/ioctl.h&gt;<br />
# include &lt;linux/videodev.h&gt;</p>
<p># define MAX_BYTES (640*480*3)</p>
<p>unsigned char image[MAX_BYTES];</p>
<p>int main()<br />
{<br />
int fd;<br />
long length;<br />
struct video_window video_win;</p>
<p>if ((fd = open(&quot;/dev/video&quot;, O_RDONLY)) == -1)<br />
{<br />
perror(&quot;read_image: Can't open device&quot;);<br />
return(1);<br />
}</p>
<p>if (ioctl(fd, VIDIOCGWIN, &amp;video_win) == -1)<br />
{<br />
perror(&quot;read_image: Can't get video window&quot;);<br />
return(1);<br />
}<br />
length = video_win.width * video_win.height * 3;<br />
if (length &gt; MAX_BYTES)<br />
{<br />
fprintf(stderr, &quot;read_image: Image too large.\n&quot;);<br />
return(1);<br />
}</p>
<p>if (read(fd, image, length) == -1)<br />
{<br />
perror(&quot;read_image: Error while reading&quot;);<br />
return(1);<br />
}</p>
<p>printf(&quot;P6\n%d %d\n255\n&quot;, video_win.width,<br />
video_win.height);<br />
fwrite(image, 3, video_win.width*video_win.height,<br />
stdout);</p>
<p>close(fd);</p>
<p>return(0);</p>
<p>habe es nie zum laufen bekommen aber vieleicht bekommst nen denkanstoß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1895831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1895831</guid><dc:creator><![CDATA[Gold]]></dc:creator><pubDate>Tue, 11 May 2010 15:30:53 GMT</pubDate></item><item><title><![CDATA[Reply to Webcam, c++ on Tue, 11 May 2010 15:49:51 GMT]]></title><description><![CDATA[<p>das debbugen habe ich schon probiert aber irgendwie werde ich leider nicht draus schlau immer wenn ich ein fehler behebe habe ich nen neuen<br />
bin nicht so firm in c++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1895844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1895844</guid><dc:creator><![CDATA[Nobre]]></dc:creator><pubDate>Tue, 11 May 2010 15:49:51 GMT</pubDate></item><item><title><![CDATA[Reply to Webcam, c++ on Tue, 11 May 2010 15:55:10 GMT]]></title><description><![CDATA[<p>Dann lass die Finger davon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1895848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1895848</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Tue, 11 May 2010 15:55:10 GMT</pubDate></item><item><title><![CDATA[Reply to Webcam, c++ on Tue, 11 May 2010 16:11:12 GMT]]></title><description><![CDATA[<p>Lies dir bitte mal den Thread &quot;Du brauchst Hilfe&quot; durch. Die Chancen stehen gut dass sich niemand zig Zeilen unformatierten Code antut, vor allem dann nicht wenn in den ersten Zeilen zu sehen ist, dass du C-Header benutzt, die in C++ seit '98 veraltet sind (&lt;stdio.h&gt;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1895857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1895857</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 11 May 2010 16:11:12 GMT</pubDate></item><item><title><![CDATA[Reply to Webcam, c++ on Tue, 11 May 2010 21:34:23 GMT]]></title><description><![CDATA[<p>das selbe problem habe ich auch. Ich versuche genau das selbe komme aber auch nicht weiter</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1895989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1895989</guid><dc:creator><![CDATA[slapstick]]></dc:creator><pubDate>Tue, 11 May 2010 21:34:23 GMT</pubDate></item></channel></rss>