<?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[Bilder möglichst effizient darstellen]]></title><description><![CDATA[<p>Ich bearbeite grade ein Projekt in dem es um Bildverarbeitung geht.<br />
Ich bin für die Akquirierung der Bilder zuständig. Die Bilddaten werden von einer Kamera empfangen und in den Speicher geschrieben.</p>
<p>Soweit so gut. Es soll aber ein Vorschaubild auf der GUI angezeigt werden, dabei müssen aber unbedingt noch genügend Ressourcen für eventeulle Bildverarbeitungsschritte übrig bleiben.</p>
<p>Frage: Wie bekomme ich die Bilder mit möglichst geringer Prozessorlast dargestellt?<br />
ich glaube in der vorgängerversion wurde es über Bitmaps(bmiHeader setzen, winapi) gelöst, das ist aber recht Prozessorlastig. gibt es eine bessere Möglichkeit? vllt über directX oder ähnliches?</p>
<p>Vielen Dank<br />
Gruß<br />
Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/182483/bilder-möglichst-effizient-darstellen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 00:10:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/182483.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 25 May 2007 11:56:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bilder möglichst effizient darstellen on Fri, 25 May 2007 11:56:54 GMT]]></title><description><![CDATA[<p>Ich bearbeite grade ein Projekt in dem es um Bildverarbeitung geht.<br />
Ich bin für die Akquirierung der Bilder zuständig. Die Bilddaten werden von einer Kamera empfangen und in den Speicher geschrieben.</p>
<p>Soweit so gut. Es soll aber ein Vorschaubild auf der GUI angezeigt werden, dabei müssen aber unbedingt noch genügend Ressourcen für eventeulle Bildverarbeitungsschritte übrig bleiben.</p>
<p>Frage: Wie bekomme ich die Bilder mit möglichst geringer Prozessorlast dargestellt?<br />
ich glaube in der vorgängerversion wurde es über Bitmaps(bmiHeader setzen, winapi) gelöst, das ist aber recht Prozessorlastig. gibt es eine bessere Möglichkeit? vllt über directX oder ähnliches?</p>
<p>Vielen Dank<br />
Gruß<br />
Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1292170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1292170</guid><dc:creator><![CDATA[marting]]></dc:creator><pubDate>Fri, 25 May 2007 11:56:54 GMT</pubDate></item><item><title><![CDATA[Reply to Bilder möglichst effizient darstellen on Wed, 30 May 2007 11:14:01 GMT]]></title><description><![CDATA[<p>Vielleicht hilft hier GDI+ weiter?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1295075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295075</guid><dc:creator><![CDATA[HaJo.]]></dc:creator><pubDate>Wed, 30 May 2007 11:14:01 GMT</pubDate></item><item><title><![CDATA[Reply to Bilder möglichst effizient darstellen on Wed, 30 May 2007 16:30:45 GMT]]></title><description><![CDATA[<p>Ich würde hier eher gucken ob nicht DirectShow für das ganze verwendet werden kann, also nicht für den Vorschau-Teil alleine, sondern fürs ganze Capturing + Vorschau.</p>
<p>Vielleicht mal einfach ein paar DirectShow capture Samples angucken?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1295388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295388</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 30 May 2007 16:30:45 GMT</pubDate></item><item><title><![CDATA[Reply to Bilder möglichst effizient darstellen on Wed, 30 May 2007 16:59:07 GMT]]></title><description><![CDATA[<p>Effizient kannst Du Bilder *nur* mittels BitBlt darstellen. Alles andere ist zu langsam.<br />
Also, erzeuge eine Bitmap, was die *passende* Auflösung und Farbtiefe zu den aktuellen Einstellungen hat, dann kannst Du es mit BitBlt rasend schnell darstellen.</p>
<p>PS: GDI+ nimmt Dir nur viel Arbeit ab, belastet aber den prozessor noch mehr! Also: Performance != GDI+!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1295413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295413</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Wed, 30 May 2007 16:59:07 GMT</pubDate></item><item><title><![CDATA[Reply to Bilder möglichst effizient darstellen on Wed, 30 May 2007 18:16:59 GMT]]></title><description><![CDATA[<p>Jochen Kalmbach schrieb:</p>
<blockquote>
<p>PS: GDI+ nimmt Dir nur viel Arbeit ab, belastet aber den prozessor noch mehr! Also: Performance != GDI+!</p>
</blockquote>
<p>Das ist interessant. Ich meine immer wieder gelesen/gehört zu haben, wenn man z.B. bei sehr komplexen Steuerelementen GDI+ verwendet kommt man &quot;schneller&quot; zum Ziel. Schnell im Sinne von Performanz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1295453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295453</guid><dc:creator><![CDATA[HaJo.]]></dc:creator><pubDate>Wed, 30 May 2007 18:16:59 GMT</pubDate></item><item><title><![CDATA[Reply to Bilder möglichst effizient darstellen on Thu, 31 May 2007 13:53:52 GMT]]></title><description><![CDATA[<p>Äh. Jochen. Wie stelle ich ein Bild mit BitBlt dar, wenn ich es irgendwo im Speicher rumliegen habe?</p>
<p>Und wieso sollte BitBlt schneller sein als DirectShow?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1295982</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295982</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 31 May 2007 13:53:52 GMT</pubDate></item><item><title><![CDATA[Reply to Bilder möglichst effizient darstellen on Fri, 08 Jun 2007 18:01:15 GMT]]></title><description><![CDATA[<p>Jochen Kalmbach schrieb:</p>
<blockquote>
<p>Effizient kannst Du Bilder *nur* mittels BitBlt darstellen. Alles andere ist zu langsam.<br />
Also, erzeuge eine Bitmap, was die *passende* Auflösung und Farbtiefe zu den aktuellen Einstellungen hat, dann kannst Du es mit BitBlt rasend schnell darstellen.</p>
</blockquote>
<p>So nachdem ich es lange genug rausgschoben habe, muss ich mich jetzt mit der ausgabe als vorschau beschäftigen.<br />
das mit BitBlt leuchtet mir ein. ich habe ein sample-programm gefunden, dass StretchDIBits benutzt, das sollte ja in dem Zusammenhang ungefähr das gleiche machen (bei dem DIB und DDB sehe ich noch nicht so ganz durch).<br />
Mein Problem ist grade nur das ich in der Fensterprogrammierung noch relativ neu bin und ich deshalb zwischen DCs und co. hin und herschleuder.</p>
<pre><code>int StretchDIBits(
  HDC hdc,                      // handle to DC
  int XDest,                    // x-coord of dest. upper-left
  int YDest,                    // y-coord of dest. upper-left
  int nDestWidth,               // width of dest. rectangle
  int nDestHeight,              // height of dest. rectangle
  int XSrc,                     // x-coord of src upper-left
  int YSrc,                     // y-coord of src upper-left
  int nSrcWidth,                // width of src rectangle
  int nSrcHeight,               // height of src rectangle
  CONST VOID *lpBits,           // bitmap bits
  CONST BITMAPINFO *lpBitsInfo, // bitmap data
  UINT iUsage,                  // usage options
  DWORD dwRop                   // raster operation code
);
</code></pre>
<p>Also: der erste Parameter muss sicher ein DC sein, wo ich das bild reinzeichnen will. FRAGE: wie lege ich am besten einen fensterbereich fest? zb bei einer dialog-basierten anwendung muss ich doch irgendwie wenn ich das hdc erstelle festlegen, wo das auf der form seien soll!?<br />
ein paar größenparameter ... sollte klar sein<br />
CONST VOID *lpBits ist dann sicher mein zeiger auf die bilddaten die ich ja schon im speicher habe.<br />
CONST BITMAPINFO *lpBitsInfo muss man irgendwie setzen, das sollte dann auch machbar sein.</p>
<p>Wäre nett wenn mir jemand bei dem hDC-Problem weiterhelfen könnte und ansonsten mal sagt ob ich soweit richtig liege.</p>
<p>Dankeschön!</p>
<p>kurz zu directShow: das capturing und die anzeige wurde früher mit directShow gemacht genügt aber aus einigen unterschiedlichen Gründen nicht mehr den Anspüchen. u.A. konnte man die Kameraparameter nicht in geeigneter Weise einstellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1301540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1301540</guid><dc:creator><![CDATA[marting]]></dc:creator><pubDate>Fri, 08 Jun 2007 18:01:15 GMT</pubDate></item><item><title><![CDATA[Reply to Bilder möglichst effizient darstellen on Fri, 08 Jun 2007 20:49:49 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Äh. Jochen. Wie stelle ich ein Bild mit BitBlt dar, wenn ich es irgendwo im Speicher rumliegen habe?</p>
</blockquote>
<p>Du musst es natürlich zuerst in das passende Format konvertienren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Und wieso sollte BitBlt schneller sein als DirectShow?</p>
</blockquote>
<p>Ich hatte BitBlt nicht mit DirectX verglichen... sondern mit GDI+...</p>
<p>HaJo. schrieb:</p>
<blockquote>
<p>Das ist interessant. Ich meine immer wieder gelesen/gehört zu haben, wenn man z.B. bei sehr komplexen Steuerelementen GDI+ verwendet kommt man &quot;schneller&quot; zum Ziel.</p>
</blockquote>
<p>Ja, man kommt schneller zum Ziel!!! Aber eben aus Sicht des Programmierers und nicht aus Performance-Sicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1301675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1301675</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Fri, 08 Jun 2007 20:49:49 GMT</pubDate></item><item><title><![CDATA[Reply to Bilder möglichst effizient darstellen on Tue, 12 Jun 2007 16:02:24 GMT]]></title><description><![CDATA[<p>hallo,<br />
ich weiß ich stelle recht grundlagenorientierte fragen, das tut mir ja auch leid.</p>
<p>ich hab mich heute mal ein bisschen belesen und schonmal einen teilerfolg erzielt.</p>
<p>ich hab</p>
<pre><code>HDC hDC=GetWindowDC(NULL);
 StretchDIBits(hDC,
                    0,
                    0,
                    400,
                    400,
                    0,
                    0,
                    400,
                    400,
                    pImage,pBitmapInfo,DIB_RGB_COLORS,SRCCOPY);
</code></pre>
<p>dabei hab ich pImage mit Bilddaten gefüllt und pBitmapInfo mit den entsprechenden Infos über breite, höhe, farben, ...<br />
wie beschrieben hab ich das mit dem HDC noch nicht so ganz hinbekommen. der obere code produziert ein bild das 400*400 pixel in der ecke des bildschirms klebt. GetWindowDC(NULL) liefert also den gesamten biildschirm als handle.<br />
Wie kann ich einen bestimmten bereich für den DC angeben? das muss doch recht einfach irgendwie gehen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Dankesehr<br />
Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304212</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304212</guid><dc:creator><![CDATA[marting]]></dc:creator><pubDate>Tue, 12 Jun 2007 16:02:24 GMT</pubDate></item><item><title><![CDATA[Reply to Bilder möglichst effizient darstellen on Tue, 12 Jun 2007 17:40:56 GMT]]></title><description><![CDATA[<p>hab jetzt selber noch was rausgefunden, der bereich des dialogfensters selber ist nicht mit GetWindowDC(NULL); sondern mit GetDC(m_hWnd); zu handlen.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
<p>ich danke trotzdem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1304318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1304318</guid><dc:creator><![CDATA[marting]]></dc:creator><pubDate>Tue, 12 Jun 2007 17:40:56 GMT</pubDate></item></channel></rss>