<?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[Probleme mit LoadImage() &#x2F; Bitmaps laden]]></title><description><![CDATA[<p>Hallo,</p>
<p>und zwar bin ich gerade dabei ein Bitmap 24 Bits zu laden. Das ganze bewerkstellige ich mit der Funktion LoadImage().</p>
<p>Das Image ist 1x10 Pixel groß.<br />
Und hat folgende Struktur (RGB)</p>
<pre><code>0/0/0
0/0/0
0/0/0
0/0/0
0/0/0
91/104/205
91/104/205
91/104/205
91/104/205
91/104/205
</code></pre>
<p>So wenn ich aber das Bitmap lade halte ich Folgendes:</p>
<pre><code>0/0/0
0/0/0
0/0/0
0/0/0
0/0/0
91/104/205
91/104/205
253/104/205
171/253/253
171/171/171
</code></pre>
<p>Die ersten Bits scheinen wohl sauber geladen zu werten, irgendwann geht es aber schief.</p>
<p>Ich gehb euh einfach mal einen kleinen ausschnitt meines codes:</p>
<pre><code>BITMAPINFO	bmiSrc;
BITMAP		bmSrc;

HBITMAP hLoaded = (HBITMAP)LoadImage(	NULL, &quot;c:\\test.bmp&quot;, IMAGE_BITMAP, 0, 0,
											LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE );
if( !hLoaded ){
	printf( &quot;Error&quot; );
	getchar();
	return 0;
}
GetObject( hLoaded, sizeof(BITMAPINFO),		&amp;bmiSrc );
GetObject( hLoaded, sizeof(BITMAP),			&amp;bmSrc );

DWORD dwImageSizeSrc = (bmiSrc.bmiHeader.biWidth*bmiSrc.bmiHeader.biHeight)*(bmSrc.bmBitsPixel/8);
LPVOID lpBitsSrc = malloc( (bmiSrc.bmiHeader.biWidth*bmiSrc.bmiHeader.biHeight)*(bmSrc.bmBitsPixel/8));

if( GetBitmapBits( hLoaded, dwImageSizeSrc, lpBitsSrc ) == 0 )
{
	OutputDebugString( &quot;\nERROR &quot; );
	return false;
}
for( int iY=0; iY &lt; bmSrc.bmHeight; iY++ )
{
	for( int iX=0; iX &lt; bmSrc.bmWidth; iX++ )
	{
		DWORD dwColorSrc=0, dwColorCmp=0;
			dwColorSrc = ((DWORD*)lpBitsSrc)[iY*(bmSrc.bmWidthBytes/3)+iX];

		BYTE r = (BYTE)((dwColorSrc &amp; 0x00ff0000) &gt;&gt; 16);
		BYTE g = (BYTE)((dwColorSrc &amp; 0x0000ff00) &gt;&gt;  8);
		BYTE b = (BYTE)((dwColorSrc &amp; 0x000000ff));

		printf( &quot;%i/%i/%i &quot;, r, g, b);

	}
	printf( &quot;\n&quot; );
}
free( lpBitsSrc );
</code></pre>
<p>Evt. sieht jemand von euch einen Fehler?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/184453/probleme-mit-loadimage-bitmaps-laden</link><generator>RSS for Node</generator><lastBuildDate>Mon, 06 Jul 2026 06:12:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/184453.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 15 Jun 2007 12:17:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit LoadImage() &#x2F; Bitmaps laden on Fri, 15 Jun 2007 12:17:16 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>und zwar bin ich gerade dabei ein Bitmap 24 Bits zu laden. Das ganze bewerkstellige ich mit der Funktion LoadImage().</p>
<p>Das Image ist 1x10 Pixel groß.<br />
Und hat folgende Struktur (RGB)</p>
<pre><code>0/0/0
0/0/0
0/0/0
0/0/0
0/0/0
91/104/205
91/104/205
91/104/205
91/104/205
91/104/205
</code></pre>
<p>So wenn ich aber das Bitmap lade halte ich Folgendes:</p>
<pre><code>0/0/0
0/0/0
0/0/0
0/0/0
0/0/0
91/104/205
91/104/205
253/104/205
171/253/253
171/171/171
</code></pre>
<p>Die ersten Bits scheinen wohl sauber geladen zu werten, irgendwann geht es aber schief.</p>
<p>Ich gehb euh einfach mal einen kleinen ausschnitt meines codes:</p>
<pre><code>BITMAPINFO	bmiSrc;
BITMAP		bmSrc;

HBITMAP hLoaded = (HBITMAP)LoadImage(	NULL, &quot;c:\\test.bmp&quot;, IMAGE_BITMAP, 0, 0,
											LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE );
if( !hLoaded ){
	printf( &quot;Error&quot; );
	getchar();
	return 0;
}
GetObject( hLoaded, sizeof(BITMAPINFO),		&amp;bmiSrc );
GetObject( hLoaded, sizeof(BITMAP),			&amp;bmSrc );

DWORD dwImageSizeSrc = (bmiSrc.bmiHeader.biWidth*bmiSrc.bmiHeader.biHeight)*(bmSrc.bmBitsPixel/8);
LPVOID lpBitsSrc = malloc( (bmiSrc.bmiHeader.biWidth*bmiSrc.bmiHeader.biHeight)*(bmSrc.bmBitsPixel/8));

if( GetBitmapBits( hLoaded, dwImageSizeSrc, lpBitsSrc ) == 0 )
{
	OutputDebugString( &quot;\nERROR &quot; );
	return false;
}
for( int iY=0; iY &lt; bmSrc.bmHeight; iY++ )
{
	for( int iX=0; iX &lt; bmSrc.bmWidth; iX++ )
	{
		DWORD dwColorSrc=0, dwColorCmp=0;
			dwColorSrc = ((DWORD*)lpBitsSrc)[iY*(bmSrc.bmWidthBytes/3)+iX];

		BYTE r = (BYTE)((dwColorSrc &amp; 0x00ff0000) &gt;&gt; 16);
		BYTE g = (BYTE)((dwColorSrc &amp; 0x0000ff00) &gt;&gt;  8);
		BYTE b = (BYTE)((dwColorSrc &amp; 0x000000ff));

		printf( &quot;%i/%i/%i &quot;, r, g, b);

	}
	printf( &quot;\n&quot; );
}
free( lpBitsSrc );
</code></pre>
<p>Evt. sieht jemand von euch einen Fehler?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306517</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306517</guid><dc:creator><![CDATA[Jimmy0]]></dc:creator><pubDate>Fri, 15 Jun 2007 12:17:16 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit LoadImage() &#x2F; Bitmaps laden on Fri, 15 Jun 2007 12:46:07 GMT]]></title><description><![CDATA[<p>ALso bmSrc.bmWidthBytes hat den Wert 4.</p>
<p>Das sollte doch eine Bedeutung haben? <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/1306545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306545</guid><dc:creator><![CDATA[Jimmy0]]></dc:creator><pubDate>Fri, 15 Jun 2007 12:46:07 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit LoadImage() &#x2F; Bitmaps laden on Fri, 15 Jun 2007 13:04:17 GMT]]></title><description><![CDATA[<p>Hi, problem gefunden:</p>
<pre><code>DWORD dwImageSizeSrc = (bmiSrc.bmiHeader.biWidth*bmiSrc.bmiHeader.biHeight)*4;
	LPVOID lpBitsSrc = malloc( dwImageSizeSrc );
</code></pre>
<p>Das Problem lag daran, dass die Bildgröße falsch ausgelesen und teilweise auch falshc im Bitmap gespeichert ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1306570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1306570</guid><dc:creator><![CDATA[Jimmy0]]></dc:creator><pubDate>Fri, 15 Jun 2007 13:04:17 GMT</pubDate></item></channel></rss>