<?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[Ablage der Pixeldaten in CImage]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich nehme CImage um Bilddaten zu laden, welche ich in OpenGL brauche.<br />
So nun bekomme ich immer Speicherzugriffsfehlern, wenn die Texturgröße 128 oder 256 ist. Ab 512 geht es seltsamerweise.</p>
<pre><code class="language-cpp">CImage image;
	image.LoadFromResource(AfxGetApp()-&gt;m_hInstance,path.c_str());
	if (image.IsNull())
	{
		return 0;
	}

	void* address = (BYTE*)image.GetBits();
	GLenum format = GL_RGB;
	if (image.GetPitch() &lt; 0)
	{
		address = image.GetPixelAddress(image.GetWidth() - 1,image.GetHeight() - 1);
		format = GL_BGR_EXT;
	}		
	glTexImage2D(GL_TEXTURE_2D,0,3,image.GetWidth(),image.GetHeight(),0,format,GL_UNSIGNED_BYTE,address);
</code></pre>
<p>Ich habe mal die Anfangs- und Endadresse des Feldes in BYTE umgewandelt und die DIfferenz genommen, um die Anzahl zu bekommen. DIese ist dann aber kleiner, als was eigentlich an Pixeln da sein muss. Daher nehm ich an, bei meiner Adresse stimmt irgendwas nicht. Weis jemand, was ich da falsch mache?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/185846/ablage-der-pixeldaten-in-cimage</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 17:10:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/185846.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 02 Jul 2007 08:14:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ablage der Pixeldaten in CImage on Mon, 02 Jul 2007 08:14:17 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich nehme CImage um Bilddaten zu laden, welche ich in OpenGL brauche.<br />
So nun bekomme ich immer Speicherzugriffsfehlern, wenn die Texturgröße 128 oder 256 ist. Ab 512 geht es seltsamerweise.</p>
<pre><code class="language-cpp">CImage image;
	image.LoadFromResource(AfxGetApp()-&gt;m_hInstance,path.c_str());
	if (image.IsNull())
	{
		return 0;
	}

	void* address = (BYTE*)image.GetBits();
	GLenum format = GL_RGB;
	if (image.GetPitch() &lt; 0)
	{
		address = image.GetPixelAddress(image.GetWidth() - 1,image.GetHeight() - 1);
		format = GL_BGR_EXT;
	}		
	glTexImage2D(GL_TEXTURE_2D,0,3,image.GetWidth(),image.GetHeight(),0,format,GL_UNSIGNED_BYTE,address);
</code></pre>
<p>Ich habe mal die Anfangs- und Endadresse des Feldes in BYTE umgewandelt und die DIfferenz genommen, um die Anzahl zu bekommen. DIese ist dann aber kleiner, als was eigentlich an Pixeln da sein muss. Daher nehm ich an, bei meiner Adresse stimmt irgendwas nicht. Weis jemand, was ich da falsch mache?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1316610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1316610</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Mon, 02 Jul 2007 08:14:17 GMT</pubDate></item></channel></rss>