<?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[CBitmap vergleichen]]></title><description><![CDATA[<p>hallo,</p>
<p>ich habe 2 CBitmap-Objekte und möchte deren pixel vergleichen...</p>
<p>ich moment mache ich es so, dass ich jedes bild in einen device-context<br />
lade und die pixel mit</p>
<pre><code>GetPixel(x,y);
</code></pre>
<p>abfrage und vergeiche!</p>
<p>gibt es eine schnellere methode? weil das ist ziemlich systemlastig!</p>
<p>danke euch <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/172527/cbitmap-vergleichen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 11:37:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/172527.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 05 Feb 2007 21:17:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CBitmap vergleichen on Mon, 05 Feb 2007 21:17:18 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>ich habe 2 CBitmap-Objekte und möchte deren pixel vergleichen...</p>
<p>ich moment mache ich es so, dass ich jedes bild in einen device-context<br />
lade und die pixel mit</p>
<pre><code>GetPixel(x,y);
</code></pre>
<p>abfrage und vergeiche!</p>
<p>gibt es eine schnellere methode? weil das ist ziemlich systemlastig!</p>
<p>danke euch <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1223533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1223533</guid><dc:creator><![CDATA[Babelduo(net eingeloggt)]]></dc:creator><pubDate>Mon, 05 Feb 2007 21:17:18 GMT</pubDate></item><item><title><![CDATA[Reply to CBitmap vergleichen on Tue, 06 Feb 2007 08:11:04 GMT]]></title><description><![CDATA[<p>Ich würde es so machen: Zuerst holst du dir per CGdiObject::GetObject() die Größenangaben beider Bitmaps (wenn die nicht übereinstimmen, kannst du schon aufhören). Danach holst du dir über CBitmap::GetBitmapBits() den Bild-Inhalt als Byte-Array und vergleichst ihn per memcpy().</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1223639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1223639</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 06 Feb 2007 08:11:04 GMT</pubDate></item><item><title><![CDATA[Reply to CBitmap vergleichen on Tue, 06 Feb 2007 11:19:15 GMT]]></title><description><![CDATA[<pre><code>// ####### Bild laden ####### 
CBitmap tmp_bitmap1;
tmp_bitmap1.LoadBitmap(IDB_BITMAP1);

BITMAP bmp1;

tmp_bitmap1.GetBitmap(&amp;bmp1);

BYTE* bmpBuffer=new BYTE[bmp1.bmWidth*bmp1.bmHeight*bmp1.bmBitsPixel];

DWORD test1=tmp_bitmap1.GetBitmapBits(bmp1.bmWidth*bmp1.bmHeight*bmp1.bmBitsPixel,bmpBuffer);

// ####### probiere auf die bits des bildes zuzugreifen &lt;-- test!! ####### 
int red,green,blue;

red = *bmpBuffer &amp; 0x1f;
green = (*bmpBuffer&gt;&gt;5) &amp; 0x1f;
blue = (*bmpBuffer&gt;&gt;10) &amp; 0x1;

CString tmp_string;
tmp_string.Format(&quot;%i %i %i&quot;,(red &lt;&lt; 3) + (red &gt;&gt; 2),(green &lt;&lt; 3) + (green &gt;&gt; 2),(blue &lt;&lt; 3) + (blue &gt;&gt; 2));
MessageBox(tmp_string);
</code></pre>
<p>hey ja danke schonmal <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 habe hier ein wenig rumprobiert denn ich möchte auch an die RGB-Werte<br />
kommen...</p>
<p>kann ich so auf die Bits des bildes zugreifen? also im moment klappt es noch nicht!</p>
<p>also wie kann ich (hier) auf bmpBuffer zugreiffen und auslesen?</p>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1223735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1223735</guid><dc:creator><![CDATA[Babelduo (net eingeloggt)]]></dc:creator><pubDate>Tue, 06 Feb 2007 11:19:15 GMT</pubDate></item><item><title><![CDATA[Reply to CBitmap vergleichen on Wed, 07 Feb 2007 09:17:24 GMT]]></title><description><![CDATA[<p>Erstmal eine Korrektur meiner Aussage: GetBitmapBits() brauchst du eignetlich nicht - du kannst aus der BITMAP-Struktur direkt auf die Daten des Bitmaps zugreifen (über den Member <code>bmBits</code> ).</p>
<p>Dann zu deiner Frage: In dem Datenbereich liegen die Bildpunkte hintereinander angeordnet - bmHeight Zeilen à bmWidth Punkte à bmBitsPixel/8 Bytes. (wie diese Bytes in RGB aufgeteilt sind, hängt von der Datendarstellung ab)</p>
<p>PS: Schau dir mal die Beschreibung der BITMAP Struktur in der MSDN an <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/1224266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1224266</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 07 Feb 2007 09:17:24 GMT</pubDate></item><item><title><![CDATA[Reply to CBitmap vergleichen on Wed, 07 Feb 2007 09:20:47 GMT]]></title><description><![CDATA[<p>hallo,<br />
ich versuche gerade etwas ähnliches und hätte da mal ein paar fragen</p>
<p>wieso &amp;0x1f ?<br />
und warum dann nich auch bei blau?</p>
<p>und das mit der addition versteh ich auch nich so recht.</p>
<p>hoffe ihr könnt mir helfen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1224269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1224269</guid><dc:creator><![CDATA[metaljack]]></dc:creator><pubDate>Wed, 07 Feb 2007 09:20:47 GMT</pubDate></item><item><title><![CDATA[Reply to CBitmap vergleichen on Wed, 07 Feb 2007 10:04:53 GMT]]></title><description><![CDATA[<p>metaljack schrieb:</p>
<blockquote>
<p>wieso &amp;0x1f ?<br />
und warum dann nich auch bei blau?</p>
<p>und das mit der addition versteh ich auch nich so recht.</p>
</blockquote>
<p>Ich vermute mal, das ist ein (allerdings verunglückter) Versuch, 16-Bit-Farben in ihre Bestandteile zu zerlegen. Kurz: So kommt man ziemlich sicher NICHT ans Ziel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1224302</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1224302</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 07 Feb 2007 10:04:53 GMT</pubDate></item><item><title><![CDATA[Reply to CBitmap vergleichen on Wed, 07 Feb 2007 10:36:50 GMT]]></title><description><![CDATA[<p>also.<br />
erstma zum bmpBuffer:</p>
<p>so funzt es:(für jedes i-te Pixel bei 0 beginnend)</p>
<pre><code class="language-cpp">blau=*(bmpBuffer+4*i);
gruen=*(bmpBuffer+4*i+1);
rot=*(bmpBuffer+4*i+2);
</code></pre>
<p>das 4te Byte is bei mir immer leer.</p>
<p>dann hätt ich mal noch ne frage:</p>
<p>ist es möglich ein angezeigtes bild(Bitmap) in ein CBitmap zu bekommen? quasi um &quot;life&quot; die Bilddaten auszulesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1224319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1224319</guid><dc:creator><![CDATA[metaljack]]></dc:creator><pubDate>Wed, 07 Feb 2007 10:36:50 GMT</pubDate></item><item><title><![CDATA[Reply to CBitmap vergleichen on Wed, 07 Feb 2007 10:48:31 GMT]]></title><description><![CDATA[<p>metaljack schrieb:</p>
<blockquote>
<p>also.<br />
erstma zum bmpBuffer:</p>
<p>so funzt es:(für jedes i-te Pixel bei 0 beginnend)</p>
<pre><code class="language-cpp">blau=*(bmpBuffer+4*i);
gruen=*(bmpBuffer+4*i+1);
rot=*(bmpBuffer+4*i+2);
</code></pre>
<p>das 4te Byte is bei mir immer leer.</p>
</blockquote>
<p>Es gibt verschiedene Möglichkeiten, die Farben RGB auf Bytes zu verteilen (je nach Farbauflösung) - u.a. auch Schwarz/Weiß (1 Bit pro Pixel), 16 Bit (da müsstest du 2 Bytes zusammenfassen und mit Bit-Operatoren zerlegen) oder 24 Bit (das Format liest du mit deinem Code)). Da wäre es noch vorteilhaft, die übrigen Member des BITMAP auszuwerten, um das verwendete Format herauszufinden.</p>
<blockquote>
<p>dann hätt ich mal noch ne frage:</p>
<p>ist es möglich ein angezeigtes bild(Bitmap) in ein CBitmap zu bekommen? quasi um &quot;life&quot; die Bilddaten auszulesen.</p>
</blockquote>
<p>Ja, indem du dir einen CDC des Bildschirms holst und dann per GetCurrentBitmap() an die Bitmap-Daten gelangst.<br />
(ohne Garantie)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1224331</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1224331</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 07 Feb 2007 10:48:31 GMT</pubDate></item></channel></rss>