<?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[[gelöst] Bild hart einbauen - wie generiert man die Daten?]]></title><description><![CDATA[<p>Hallo zusammen,<br />
Qt hat die Eigenschaft Bilder, die man in Oberflächen integriert (z.B. Logos) in einer Ressourcendatei einzubetten, z.B.</p>
<pre><code>static const unsigned char qt_resource_data[] = {
  0x0,0x1,0xd9,0x1d,
  // Name (inkl. Pfad zur Datei)
  0x89,
  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa
  /* Noch viel mehr 0x.. hier */
};
</code></pre>
<p>Meine ganz einfache Frage hierzu: Wie generiere ich ein solches Array selbst?</p>
<p>Ich bräuchte das in einem anderen Projekt nun auch in dieser Form, bin aber irgendwie zu blöd das Array zu erzeugen. Nunja, ich würde nun gern wissen, wie man es (richtig) macht. Da gibts doch sicher auch was von Ratio... (Das ein oder andere OpenSource-Projekt auf Github &amp; Co. wird da doch bestimmt was haben. Also, wenn jemand einen Codeschnipsel, einen Link zu einem Codeschnipsel oder auch geeignete Suchbegriffe hat, wäre ich begeistert.)</p>
<p>Viele Grüße<br />
gelignite</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/335660/gelöst-bild-hart-einbauen-wie-generiert-man-die-daten</link><generator>RSS for Node</generator><lastBuildDate>Mon, 20 Apr 2026 07:14:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/335660.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 02 Dec 2015 22:59:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [gelöst] Bild hart einbauen - wie generiert man die Daten? on Thu, 03 Dec 2015 15:42:54 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
Qt hat die Eigenschaft Bilder, die man in Oberflächen integriert (z.B. Logos) in einer Ressourcendatei einzubetten, z.B.</p>
<pre><code>static const unsigned char qt_resource_data[] = {
  0x0,0x1,0xd9,0x1d,
  // Name (inkl. Pfad zur Datei)
  0x89,
  0x50,0x4e,0x47,0xd,0xa,0x1a,0xa
  /* Noch viel mehr 0x.. hier */
};
</code></pre>
<p>Meine ganz einfache Frage hierzu: Wie generiere ich ein solches Array selbst?</p>
<p>Ich bräuchte das in einem anderen Projekt nun auch in dieser Form, bin aber irgendwie zu blöd das Array zu erzeugen. Nunja, ich würde nun gern wissen, wie man es (richtig) macht. Da gibts doch sicher auch was von Ratio... (Das ein oder andere OpenSource-Projekt auf Github &amp; Co. wird da doch bestimmt was haben. Also, wenn jemand einen Codeschnipsel, einen Link zu einem Codeschnipsel oder auch geeignete Suchbegriffe hat, wäre ich begeistert.)</p>
<p>Viele Grüße<br />
gelignite</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2477975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2477975</guid><dc:creator><![CDATA[gelignite]]></dc:creator><pubDate>Thu, 03 Dec 2015 15:42:54 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Bild hart einbauen - wie generiert man die Daten? on Wed, 02 Dec 2015 23:29:10 GMT]]></title><description><![CDATA[<p>Naja, du könntest den <a href="http://doc.qt.io/qt-4.8/rcc.html" rel="nofollow">rcc</a> von Qt verwenden. Wenn es nicht so viele Farben sein sollen geht auch xpm. convert von ImageMagick konvertiert dahin.</p>
<p>Einen schönen Abend noch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2477978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2477978</guid><dc:creator><![CDATA[dirkski]]></dc:creator><pubDate>Wed, 02 Dec 2015 23:29:10 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Bild hart einbauen - wie generiert man die Daten? on Thu, 03 Dec 2015 12:12:27 GMT]]></title><description><![CDATA[<p>Für rudimentäre Sachen geht auch xxd: (kann natürlich nur den Inhalt, den Rest müsstest du selbst machen)</p>
<pre><code>xxd -i bild.png &gt; embedded.c
</code></pre>
<p>oder ähnlich, je nach dem, was du damit machen möchtest.</p>
<p>Bild.png</p>
<pre><code>Hallo xxd!
</code></pre>
<p>Output:</p>
<pre><code>unsigned char bild_png[] = {
    0x48, 0x61, 0x6c, 0x6c, 0x6f, 0x20, 0x78, 0x78, 0x64, 0x21, 0x0a
};
unsigned int bild_png_len = 11;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2478030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478030</guid><dc:creator><![CDATA[hyde_logoff]]></dc:creator><pubDate>Thu, 03 Dec 2015 12:12:27 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] Bild hart einbauen - wie generiert man die Daten? on Thu, 03 Dec 2015 15:42:31 GMT]]></title><description><![CDATA[<p>Hallo,<br />
vielen Dank für eure beiden Antworten. Den <em>RCC</em> habe ich mir angeschaut und ausprobiert und, naja, damit ginge es wohl auch, wenn sich nichts anderes findet.</p>
<p>Ich hatte gestern auch schon zum Teil eine eigene Lösung aus verschiedenen Quellen zusammenkopiert, aber da wurden noch einzelne Werte falsch ausgegeben. Zwischendrin tauchten Werte, wie z.B. <code>0xfffff89</code> , auf.</p>
<p>Die Antwort bezüglich <em>xxd</em> habe ich jetzt erst gesehen. Das werde ich mir bei Gelegenheit vielleicht auch noch einmal näher anschauen.</p>
<p>Viele Grüße<br />
gelignite</p>
<p>--------------</p>
<p>P.S.</p>
<p>Zwischenzeitlich konnte ich bei meinem Ansatz aber den Fehler beseitigen und komme auch damit zum Ziel. Der Vollständigkeit halber (für die Nachwelt):</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;iomanip&gt;
#include &lt;boost\filesystem.hpp&gt;

int main( int argc, char** argv )
{
	boost::filesystem::directory_iterator
		it( argv[1] ),
		itEnd;

	// Walk through given folder
	for( ; it != itEnd; ++it )
	{
		boost::filesystem::path pFile( it-&gt;path() );
		if( pFile.extension().string() == &quot;.exe&quot; )
		{
			std::cout &lt;&lt; &quot;Skipping &quot; &lt;&lt; pFile.string() &lt;&lt; &quot; ...&quot; &lt;&lt; std::endl;
		}
		else
		{
			std::cout &lt;&lt; &quot;Processing &quot; &lt;&lt; pFile.string() &lt;&lt; &quot; ...&quot; &lt;&lt; std::endl;

			//read
			std::ifstream input( pFile.string(), std::ios::binary );
			std::vector&lt;char&gt; buffer( (std::istreambuf_iterator&lt;char&gt;(input)), (std::istreambuf_iterator&lt;char&gt;()) );

			//write (formatted)
			const int iSize = buffer.size();
			std::string sOutfile( pFile.replace_extension( &quot;.txt&quot; ).string() );
			std::ofstream out( sOutfile, std::ofstream::binary );
			out &lt;&lt; &quot;static const unsigned char &quot;
				&lt;&lt; pFile.filename().stem().string()
				&lt;&lt; &quot;_&quot;
				&lt;&lt; pFile.filename().extension().string().substr(1) // remove &quot;.&quot; from &quot;.ext&quot;
				&lt;&lt; &quot;[] = {&quot; &lt;&lt; '\r' &lt;&lt; '\n';
			out &lt;&lt; std::hex &lt;&lt; std::setfill('0');
			for( int i = 0; i &lt; iSize; ++i )
			{
				// line break every 16 bytes
				if( i &gt; 0 &amp;&amp; i % 16 == 0 )
				{
					out &lt;&lt; '\r' &lt;&lt; '\n';
				}
				out &lt;&lt; &quot;0x&quot; &lt;&lt; std::setw(2) &lt;&lt; static_cast&lt;int&gt;( *reinterpret_cast&lt;unsigned char*&gt;( &amp;buffer[i] ));
				// separator
				if( i &lt; iSize - 1 )
				{
					out &lt;&lt; &quot;,&quot;;
				}
			}
			out &lt;&lt; '\r' &lt;&lt; '\n' &lt;&lt; &quot;};&quot;;
			out.close();
		}
	}
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2478052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478052</guid><dc:creator><![CDATA[gelignite]]></dc:creator><pubDate>Thu, 03 Dec 2015 15:42:31 GMT</pubDate></item></channel></rss>