<?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[GetPixel()]]></title><description><![CDATA[<p>Halihalo!<br />
Ich habe mal wieder eine frage, und zwar, kennt jemand eine farbtabelle wo ich die codes für bestimmte farben heraus bekomme?</p>
<p>also, z.b ich lade ein 24 bit bitmap, hole mir mit getpixerl einen pixel raus, und nun möchte ich erkennen ob der farbton den rgb wert 255, 0, 0 hat.</p>
<p>Muss ich das dann mit GetRValue() GetGValue() und GetBValue()<br />
oder geht das irgentwie einfacher?</p>
<p>kann man GetRValue() GetGValue() und GetBValue() zusammenfassen, das ich alle drei werte gleichzeitig durch irgent eine funktion wie GetRGB() (pseudocode) bekomme??</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/204801/getpixel</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 17:09:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/204801.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 07 Feb 2008 07:38:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to GetPixel() on Thu, 07 Feb 2008 07:38:40 GMT]]></title><description><![CDATA[<p>Halihalo!<br />
Ich habe mal wieder eine frage, und zwar, kennt jemand eine farbtabelle wo ich die codes für bestimmte farben heraus bekomme?</p>
<p>also, z.b ich lade ein 24 bit bitmap, hole mir mit getpixerl einen pixel raus, und nun möchte ich erkennen ob der farbton den rgb wert 255, 0, 0 hat.</p>
<p>Muss ich das dann mit GetRValue() GetGValue() und GetBValue()<br />
oder geht das irgentwie einfacher?</p>
<p>kann man GetRValue() GetGValue() und GetBValue() zusammenfassen, das ich alle drei werte gleichzeitig durch irgent eine funktion wie GetRGB() (pseudocode) bekomme??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1450992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1450992</guid><dc:creator><![CDATA[Showball]]></dc:creator><pubDate>Thu, 07 Feb 2008 07:38:40 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Thu, 07 Feb 2008 09:14:50 GMT]]></title><description><![CDATA[<p>bau dir doch selbst soeine funktion... so in der art..</p>
<pre><code class="language-cpp">RGB GetRGB(pixel)
{
    return RGB(pixel.GetRValue(), pixel.GetGValue(), pixel. GetBValue());
}
</code></pre>
<p>das sollte nicht zu schwer sein. sorry habe keine zeit, sonst hätte ich was richtiges geschrieben...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1451033</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1451033</guid><dc:creator><![CDATA[Machine]]></dc:creator><pubDate>Thu, 07 Feb 2008 09:14:50 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Thu, 07 Feb 2008 09:27:43 GMT]]></title><description><![CDATA[<p>Bau Dir eine Struktur/Klasse, z.B. Color</p>
<pre><code class="language-cpp">class Color
{
public:
   Color(int pixel) : red(GetRValue(pixel)), green(GetGValue(pixel)), blue(GetBValue(pixel)) {}
   // getter für red, green, blue und ggf. setter

private:
   unsigned short red, green, blue;
};

...
Color c(GetPixel(...));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1451043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1451043</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Thu, 07 Feb 2008 09:27:43 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Thu, 07 Feb 2008 09:38:01 GMT]]></title><description><![CDATA[<p>ist doch blödsinn..<br />
ob er nun eine klasse nach den einzelnen werten fragt, oder selbst ne klasse baut, welche er nach den einzelnen werten fragt -&gt; ist doch egal und bleibt das gleiche..</p>
<p>Showball: Willst du den Rückgabewert von GetPixel vergleichen mit einem RGB? Oder willst du die einzelnen Werte wissen? Vergleichen könntest du so:</p>
<pre><code class="language-cpp">if( RGB( 255, 0, 0) == GetPixel())
    //YEAH!
else
    //noooo!
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1451048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1451048</guid><dc:creator><![CDATA[Machine]]></dc:creator><pubDate>Thu, 07 Feb 2008 09:38:01 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Thu, 07 Feb 2008 14:20:15 GMT]]></title><description><![CDATA[<p>Ja, genau das meinte ich, ich habt den nagel aufm hammer getroffen xD</p>
<p>Dankeschön <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/1451244</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1451244</guid><dc:creator><![CDATA[Showball]]></dc:creator><pubDate>Thu, 07 Feb 2008 14:20:15 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Thu, 07 Feb 2008 15:37:17 GMT]]></title><description><![CDATA[<p>Habe da noch eine kleine ^^</p>
<p>Und zwar würde ich gerne wissen was schneller ist, aso, wenn ich ein Bitmap von 100x100 anzeige oder 100x100 pixel einzelnd zeichne?</p>
<p>ist im moment ziehmlich wichtig^^</p>
<p>weil ich was am machen bin, und wenn das anzeigen von pixeln einzelnd beispielsweise doppelt so lange dauert wie das anzeigen von bitmaps, wirft das alles wieder auf den haufen ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1451312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1451312</guid><dc:creator><![CDATA[Showball]]></dc:creator><pubDate>Thu, 07 Feb 2008 15:37:17 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Thu, 07 Feb 2008 15:40:08 GMT]]></title><description><![CDATA[<p>kommt drauf an wie du das bitmap anzeigen willst.. aber imho ist das pixelsetzen langsamer...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1451318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1451318</guid><dc:creator><![CDATA[Machine]]></dc:creator><pubDate>Thu, 07 Feb 2008 15:40:08 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Thu, 07 Feb 2008 16:17:09 GMT]]></title><description><![CDATA[<p>giebt es ne schnellere art pixel zu setzen?</p>
<p>Um wie viel ist das langsammer? halb so schnell, also in welchem verhältnis steht es, 1:2 ?? 1:4 ?? 1:1,25?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1451348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1451348</guid><dc:creator><![CDATA[Showball]]></dc:creator><pubDate>Thu, 07 Feb 2008 16:17:09 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Thu, 07 Feb 2008 16:20:16 GMT]]></title><description><![CDATA[<p>keine ahnung, probiers doch einfach aus ?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1451351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1451351</guid><dc:creator><![CDATA[Machine]]></dc:creator><pubDate>Thu, 07 Feb 2008 16:20:16 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Thu, 07 Feb 2008 17:03:17 GMT]]></title><description><![CDATA[<p>CreateDIBSection, da kannst du direkt auf die Pixel zugreifen, ist allerdings schwieriger zu verwenden <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=";D"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1451392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1451392</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Thu, 07 Feb 2008 17:03:17 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Thu, 07 Feb 2008 17:17:06 GMT]]></title><description><![CDATA[<p>wenn ich das so machen würde mit der DibSection, dann ist das genauso schnell as ob ich normal ein bitmap anzeigen will?</p>
<p>denn ich habe jetzt geschaft was ich machen wollte, und merke, das ist ungefair 100x langsammer als bitmaps an zu zeigen^^</p>
<p>ich werde mal ein wenig googlen und schauen was es mit CreateDibSection so auf sich hat <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>werde mich wieder melden wenn ich fragen hab!!</p>
<p>danke!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1451404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1451404</guid><dc:creator><![CDATA[Showball]]></dc:creator><pubDate>Thu, 07 Feb 2008 17:17:06 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Thu, 07 Feb 2008 18:12:51 GMT]]></title><description><![CDATA[<p>Entschuldigt, aber ich finde eine menge bei google, aber leider nix was mir hilft <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Könnte mir jemand das erklären ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1451433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1451433</guid><dc:creator><![CDATA[Showball]]></dc:creator><pubDate>Thu, 07 Feb 2008 18:12:51 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Thu, 07 Feb 2008 18:49:29 GMT]]></title><description><![CDATA[<p>In der FAQ wird eine DIB-Section z.B. zum Bitmap speichern benutzt:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39400.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39400.html</a></p>
<p>...da allerdings um an die Pixeldaten ranzukommen um sie weg zu schreiben, nicht um sie zu setzen <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=";D"
      alt="😉"
    /></p>
<p>Im Prinzip sagst du, welches Format deine Bitmap haben soll (Farbtiefe, Größe, etc.), rufst dann CreateDIBSection() auf und bekommst da bei dibvalues einen Zeiger auf den Speicher wo die Pixeldaten liegen.</p>
<p>Ich empfehle dir biBitCount auf 32 zu setzen, und biCompression=BI_RGB, sowie biHeight= minus gewünschte Höhe.</p>
<p>negative Höhe, hat auf die tatsächliche Höhe keine Auswirkung, sagt aber das in den dibvalues die linkere obere Ecke der Bitmap auch sofort am Anfang steht. Bei positiver Höhe, wäre der oberste linke Pixel ganz am Ende <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=";D"
      alt="😉"
    /></p>
<p>Dank biBitCount=32 ersparst du dir Scanline-Rumrechnerei.</p>
<p>Die einzelnen Pixel liegen dann Zeilweise in dibvalues drin. (R,G,B und ein ungenutzer Byte. Ich meine die lagen allerdings in anderer Reihenfolge drin, B,G,R,ungenutzt oder so)</p>
<p>Nähere Details und Infos liegen verstückelt in der msdn rum <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=";D"
      alt="😉"
    /><br />
z.B. hier: <a href="http://msdn2.microsoft.com/en-us/library/ms532317.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/ms532317.aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1451460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1451460</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Thu, 07 Feb 2008 18:49:29 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Thu, 07 Feb 2008 18:58:30 GMT]]></title><description><![CDATA[<p>das habe ich schon gefunde, aber hilft mir leider nicht weiter <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Das ist viel zu viel spanisch für mich ...</p>
<p>Ich suche eher was was sich auf das wesentliche beschränkt, keine methoden kassen oder ähnliches benutzt, mag ich net^^</p>
<p>ich versuche mich mal durch den code durchzu beissen, würde mich aber freuen wenn du was kennst was schön übersichtilich und einfach aufgebaut ist kennst <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>Nochmals danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1451466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1451466</guid><dc:creator><![CDATA[Showball]]></dc:creator><pubDate>Thu, 07 Feb 2008 18:58:30 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Thu, 07 Feb 2008 19:45:30 GMT]]></title><description><![CDATA[<p>Showball schrieb:</p>
<blockquote>
<p>das habe ich schon gefunde, aber hilft mir leider nicht weiter <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Das ist viel zu viel spanisch für mich ...</p>
<p>Ich suche eher was was sich auf das wesentliche beschränkt, keine methoden kassen oder ähnliches benutzt, mag ich net^^</p>
<p>ich versuche mich mal durch den code durchzu beissen, würde mich aber freuen wenn du was kennst was schön übersichtilich und einfach aufgebaut ist kennst <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>Nochmals danke!</p>
</blockquote>
<p>da wirst du nicht drumherum kommen.. das ist schon einfach erklärt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1451508</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1451508</guid><dc:creator><![CDATA[Machine]]></dc:creator><pubDate>Thu, 07 Feb 2008 19:45:30 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Sat, 09 Feb 2008 16:21:45 GMT]]></title><description><![CDATA[<p>Also, ich möchte bloß die pixel anzeigen, wie lange das laden des bitmaps dauert ist mir eal, ich will bloß inen pixel so schnell zeichnen wie es geht, mir kommt das so vor als ob man damit läd, aber nicht anzeigt.</p>
<p>Ich möcte kein bitmap anzigen sondern pixel ...<br />
<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=":/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1452580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1452580</guid><dc:creator><![CDATA[Showball]]></dc:creator><pubDate>Sat, 09 Feb 2008 16:21:45 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Sat, 09 Feb 2008 17:44:54 GMT]]></title><description><![CDATA[<p>Bei einem einzigen Pixel wird SetPixel() wohl schnell genug sein <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=";D"
      alt="😉"
    /></p>
<p>Bei vielen Pixeln ist die Nutzung einer DIB-Section zusammen mit BitBlt() oder SetDIBits() definitiv deutlich schneller.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1452654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1452654</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Sat, 09 Feb 2008 17:44:54 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Sat, 09 Feb 2008 18:12:44 GMT]]></title><description><![CDATA[<p>Ja aber ich verstehe das irgent wie net, ich zeichne momentan 800x600 pixel mit setpixel()</p>
<p>Wie zeichne ich aber jeden pixel einzelnd mit der dibsection ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1452678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1452678</guid><dc:creator><![CDATA[Showball]]></dc:creator><pubDate>Sat, 09 Feb 2008 18:12:44 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Sat, 09 Feb 2008 18:47:46 GMT]]></title><description><![CDATA[<p>Beim erzeugen der DIB-Section bekommst du halt einen Zeiger auf den Speicher wo die Pixel alle hintereinander liegen. Die kannst du da einfach direkt manipulieren.</p>
<p>Die DIB-Section selbst lässt sich genauso verwenden wie ne normale Bitmap (SelectObject, BitBlt, etc.) nur hast du halt direkten Zugriff auf den Speicherbereich wo die einzelnen Pixel liegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1452698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1452698</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Sat, 09 Feb 2008 18:47:46 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Sat, 09 Feb 2008 18:59:46 GMT]]></title><description><![CDATA[<p>Irgentwie verstehe ich das immer noch net^^</p>
<p>Also, ich versuche mal zu erklären was mein programm eigentlich macht.</p>
<p>1. Ich lade ein bitmap<br />
2. speichere alle pixel des bitmaps in einer arrayvariable vom typ colorref<br />
3. Nun zeige ich jeden pixel an, das sieht bei mir momentan so aus:</p>
<pre><code class="language-cpp">for (int i = 0; i &lt; 800; i++)
		{
			for (int j = 0; j &lt; 600; j++)
			{

	   SetPixel (hdc, i, j, buffer[i][j]) ;

			}
}
</code></pre>
<p>Dies passiert nun 100 mal die sekunde, man kann sich vorstellen, das das gewisse problematiken bereitet.</p>
<p>Also, ich will kein bild laden oda so, ich hantiere auch nichmehr mit dem bild herum, sondern ich handtiere nurnoch mit dem coloref herum, mit einer variable halt.</p>
<p>Nur das anzeigen macht problehme, das anzeigen der einzelnen pixel <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=":/"
      alt="😕"
    /></p>
<p>Ich suche ganz einfach in schnellere funktion als diese hier:<br />
SetPixel (hdc, i, j, buffer[i][j]) ;</p>
<p>mit bitbtl oda so habe ich in der anwendung nix am hut, zeichne bloß pixel.</p>
<p>oda habe ich da jetzt irgentwas falsch verstanden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1452708</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1452708</guid><dc:creator><![CDATA[Showball]]></dc:creator><pubDate>Sat, 09 Feb 2008 18:59:46 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Sat, 09 Feb 2008 19:55:30 GMT]]></title><description><![CDATA[<p>Bitte helft mir, ich finde bei google einfach nix da zeigen die komplette bitmaps immer nur an, ich will einfach nur pixl anzeigen, keine bitmaps <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1452744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1452744</guid><dc:creator><![CDATA[Showball]]></dc:creator><pubDate>Sat, 09 Feb 2008 19:55:30 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Sat, 09 Feb 2008 20:43:34 GMT]]></title><description><![CDATA[<p>SetPixel() ist nunmal lahmarschig (dafür wird die Änderung aber auch nach jedem SetPixel sofort sichtbar) <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=";D"
      alt="😉"
    /></p>
<p>Der Weg über eine Bitmap ist nunmal deutlich schneller.<br />
Du setzt die Pixel direkt im Speicher ohne Umwege und kannst die ganzen gesetzten Pixel dann in einem Rutsch dank BitBlt() anzeigen.</p>
<p>Es gibt nichts wirklich anderes in der WinAPI.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1452769</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1452769</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Sat, 09 Feb 2008 20:43:34 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Sat, 09 Feb 2008 20:58:03 GMT]]></title><description><![CDATA[<p>Jetzt nehmen wir mal an ich will daraus mal ein mini 2d game machen, ist das möglich, also das das bild nicht mehr flackert etc?</p>
<p>Langsamm fange ich an zu verstehen, aber noch nicht ganz <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Ist di anzeige geschwindigkeit dann genauso schnell als ob ich ein normales bitmap normal anzeige oder schneller?</p>
<p>Ich frage das nur ungerne, aber könntest du ein codebeispiel senden?<br />
Ich komme da einfach nicht weiter <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1452779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1452779</guid><dc:creator><![CDATA[Showball]]></dc:creator><pubDate>Sat, 09 Feb 2008 20:58:03 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Sat, 09 Feb 2008 21:12:35 GMT]]></title><description><![CDATA[<p>Es flackert auf jedenfall deutlich weniger als bei SetPixel() (es sei denn du nutzt BackBuffer, dann tut sich in beiden Fällen da nichts)</p>
<p>Pixel-setzen bei ner DIB-Section und BitBlt zusammen dauert sehr sehr sehr viel weniger als SetPixel. Bei sagen wir 800x600 ist SetPixel() schon derbst bescheiden.</p>
<p>Wenn du ein Spiel machst: Wozu musst du da einzelne Pixel setzen?! Wenn du da ne Figur oder so über den Bildschirm wandern lassen willst, würde ich eher die Person in ne Bitmap klatschen und Hintergrund etc. jeweils ne Bitmap und das ganze jeweils direkt via BitBlt(), TransparentBlt(), AlphaBlend() oder so auf den Bildschirm pappen.<br />
Bei BitBlt() muss 'quasi' nur kopiert werden, das geht selbst bei größeren Bildern noch ratz-fatz.</p>
<p>Aber für Spiele lohnt sich wohl eher SDL oder speziell bei 2D-Spielen das gute alte DirectDraw <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=";D"
      alt="😉"
    /></p>
<p>(Quellcode habe ich keinen (mehr) da, bin auf C# umgestiegen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1452781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1452781</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Sat, 09 Feb 2008 21:12:35 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Sat, 09 Feb 2008 21:22:10 GMT]]></title><description><![CDATA[<p>Ich werde es nie kapieren ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1452784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1452784</guid><dc:creator><![CDATA[Showball]]></dc:creator><pubDate>Sat, 09 Feb 2008 21:22:10 GMT</pubDate></item><item><title><![CDATA[Reply to GetPixel() on Sat, 09 Feb 2008 21:36:55 GMT]]></title><description><![CDATA[<p>So, mal Flugs anhand der msdn gebaut - unkontrolliert und vermutlich fehlerhaft:</p>
<pre><code class="language-cpp">HBITMAP aBmp;			// Handle der DIB
BITMAPINFO bi;			// BITMAPINFO-Struktur
BITMAPINFOHEADER bmih;	// BITMAPINFOHEADER-Struktur
char *dibvalues;		// Zeiger auf die Pixeldaten

// Eigenschaften der zu erzeugenden DIB-Section setzen:
ZeroMemory(&amp;bmih,sizeof(BITMAPINFOHEADER));
bmih.biSize=sizeof(BITMAPINFOHEADER);
bmih.biHeight=-480;	// Höhe der Bitmap 480, negatives Vorzeichen: Oberstes linkes Pixel=erste Pixel in dibvalues
bmih.biWidth=640;	// Breite der Bitmap 640 Pixel
bmih.biPlanes=1;	// Ist irgendwie immer 1 ;D
bmih.biBitCount=32;	// Ein Pixel besteht aus 32 Bits (8 Bit rot, 8 Bit grün, 8 Bit blau, 8 Bit ungenutzt)
bmih.biCompression=BI_RGB;   // BI_RGB = nicht komprimiert

// BITMAPINFO-Struktur (wird von CreateDIBSection() benötigt)
// hat 2 Member, einen für die Palette, welche wir nicht benutzen und die BITMAPINFOHEADER-Struktur ist eingebettet:
bi.bmiHeader=bmih;

// Bei DIB_RGB_COLORS holt sich CreateDIBSection Paletteninfos auf dem hdc das wir übergeben, wir nehmen mal den hdc vom Desktop:
HDC hdc=GetDC(NULL);

// Das Ding hier erzeugt eine DIB-Section und liefert einen HBITMAP-Handle zurück.
// In dibvalues speichert die Funktionen einen Zeiger auf den Speicherbereich wo die Pixel rumliegen
aBmp=CreateDIBSection(hdc,&amp;bi,DIB_RGB_COLORS,(void**)&amp;dibvalues,NULL,NULL);

// Kurz aufräumen:
ReleaseDC(NULL,hdc);

// Hat das überhaupt geklappt?
if (aBmp==NULL)
{
	OutputDebugString(&quot;CreateDIBSection failed! \n&quot;);
	return 0;
}

// Jetzt können wir munter Pixel setzen,
// das hier entspricht quasi SetPixel()!
// hier als Beispiel an der Stelle (x/y)
// Ich bin mir nicht sicher aber ich glaube rot,grün,blau,ungenutzt entspricht nicht der hier stehende Reihenfolge
// einfach mal rumprobieren.
// Mit y*Breite*4+x*4 wird quasi die Position in dibvalues berechnet (hoffe ich)
// Warum *4 ? Ein Pixel hatte 32 Bit!
dibvalues[y*bmih.biWidth*4+x*4+0] = rotanteil des Pixels an der Stelle (x/y);
dibvalues[y*bmih.biWidth*4+x*4+1] = grünanteil des Pixels an der Stelle (x/y);
dibvalues[y*bmih.biWidth*4+x*4+2] = blauanteil des Pixels an der Stelle (x/y);
dibvalues[y*bmih.biWidth*4+x*4+3] = ungenutzt ?;

// ** Ab hier wird aBmp wie eine gewöhnliche Bitmap verwendet **

// Erzeugen wir mal nen temporären DC:
hdc=GetDC(NULL);
HDC temp_hdc=CreateCompatibleDC(hdc);
ReleaseDC(NULL,hdc);

// Selektieren da wie bei anderen Bitmaps auch die Bitmap rein:
HGDIOBJ OldObj=SelectObject(temp_hdc,aBmp);

// ...und blitten die aufs Ziel-DC:
BitBlt(ziel_hdc,0,0,640,480,temp_hdc,0,0,SRCCOPY); 

// ...und natürlich aufräumen:
SelectObject(temp_hdc,OldObj);
DeleteObject(aBmp);
DeleteDC(temp_hdc);
</code></pre>
<p>Die DIB-Section braucht man dabei im Prinzip eigentlich nur 1x beim programmstart erzeugen und kann dann mit dibvalues die Pixel ändern wie man will, ist man fertig einfach nochmal BitBlt().</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1452789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1452789</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Sat, 09 Feb 2008 21:36:55 GMT</pubDate></item></channel></rss>