<?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] einfachster weg von std::vector zu bild auf der festplatte]]></title><description><![CDATA[<p>hi leute,</p>
<p>ich suche etwas möglichst einfaches um daten aus einem std::vektor als bild auf die festplatte zu schreiben. bildtyp ist mir ziemlich egal.</p>
<p>am liebsten wäre mir eine einfache klasse, der ich nur meine werte in irgendeiner form übergeben kann und die diese dann auf die platte schreibt.</p>
<p>das ganze ist nur zum testen gedacht, muss also nichts aufwändiges/performantes sein, es soll nur funktionieren.<br />
auch würde ich ungern, deswegen wieder eine menge code einbinden.</p>
<p>gibt es sowas? wäre super.<br />
danke schonmal im voraus für eure antworten.</p>
<p>jperl</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/249499/gelöst-einfachster-weg-von-std-vector-zu-bild-auf-der-festplatte</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 10:39:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/249499.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 08 Sep 2009 12:26:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Wed, 09 Sep 2009 06:19:38 GMT]]></title><description><![CDATA[<p>hi leute,</p>
<p>ich suche etwas möglichst einfaches um daten aus einem std::vektor als bild auf die festplatte zu schreiben. bildtyp ist mir ziemlich egal.</p>
<p>am liebsten wäre mir eine einfache klasse, der ich nur meine werte in irgendeiner form übergeben kann und die diese dann auf die platte schreibt.</p>
<p>das ganze ist nur zum testen gedacht, muss also nichts aufwändiges/performantes sein, es soll nur funktionieren.<br />
auch würde ich ungern, deswegen wieder eine menge code einbinden.</p>
<p>gibt es sowas? wäre super.<br />
danke schonmal im voraus für eure antworten.</p>
<p>jperl</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774531</guid><dc:creator><![CDATA[jperl]]></dc:creator><pubDate>Wed, 09 Sep 2009 06:19:38 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Tue, 08 Sep 2009 12:30:29 GMT]]></title><description><![CDATA[<p>Auf die Festplatte? Für Dateien kannst du <code>std::fstream</code> benutzen, das ist wohl das Naheliegendste. Sieh mal bei <a href="http://www.cplusplus.com" rel="nofollow">www.cplusplus.com</a> nach.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774535</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 08 Sep 2009 12:30:29 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Tue, 08 Sep 2009 12:32:45 GMT]]></title><description><![CDATA[<p>Wie liegen deine Daten denn vor? In jedem Fall musst du die Pixel haben. Du könntest dir ganz einfach eine Klasse bauen. Zum Beispiel eine Bitmap-Klasse:</p>
<pre><code class="language-cpp">class BitmapExport
{
	public:
		BitmapExport(std::vector&lt;unsigned char&gt; &amp;pixelBuffer);
		...
</code></pre>
<p>Da fügste dann noch die entsprechenden Header zum File hinzu und exportierst das File als bmp-Datei. Halte dich nur streng an die Spezifikationen, sonst könnte es passieren, dass das jeweilige OS deinen Bildtyp nicht erkennt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774537</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774537</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Tue, 08 Sep 2009 12:32:45 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Tue, 08 Sep 2009 12:33:32 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Auf die Festplatte? Für Dateien kannst du <code>std::fstream</code> benutzen, das ist wohl das Naheliegendste. Sieh mal bei <a href="http://www.cplusplus.com" rel="nofollow">www.cplusplus.com</a> nach.</p>
</blockquote>
<p>naja gut davor steht noch &quot;als bild&quot; auf die festplatte. ich will den vektor also in bildform abspeichern.<br />
ist wie gesagt nur zum testen und ich will mich ansich nicht mit irgendwelchen bildformaten und headern herumschlagen.</p>
<p>jperl</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774538</guid><dc:creator><![CDATA[jperl]]></dc:creator><pubDate>Tue, 08 Sep 2009 12:33:32 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Tue, 08 Sep 2009 12:35:14 GMT]]></title><description><![CDATA[<p>jperl schrieb:</p>
<blockquote>
<p>naja gut davor steht noch &quot;als bild auf die festplatte&quot;. ich will den vektor also in bildform abspeichern.</p>
</blockquote>
<p>Bild? Grafik?</p>
<p>Ich hab das jetzt eher im Sinne von Abbild/Image, also 1:1 verstanden, was mit binärem Schreiben möglich wäre.</p>
<p>jperl schrieb:</p>
<blockquote>
<p>ist wie gesagt nur zum testen und ich will mich ansich nicht mit irgendwelchen bildformaten und headern herumschlagen.</p>
</blockquote>
<p>Du willst dich mit nichts auseinandersetzen, aber unbedingt einen Vector &quot;zum Testen&quot; als Bildformat speichern? Wie sinnvoll ist das denn? <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=":confused:"
      alt="😕"
    /></p>
<p>Falls du deine Meinung änderst, kannst du ja mal SFML anschauen. Aber &quot;nur zum Testen&quot;... Das dauert, bis du dich da eingearbeitet hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774539</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 08 Sep 2009 12:35:14 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Tue, 08 Sep 2009 12:40:10 GMT]]></title><description><![CDATA[<p>Könntest du vielleicht etwas erläutern, wie der Zusammenhang zwischen dem vector und seiner grafischen Repräsentation aussehen soll?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774545</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 08 Sep 2009 12:40:10 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Tue, 08 Sep 2009 12:46:49 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12954">@Nexus</a><br />
naja dann hast du das bildtyp danach halt überlesen.</p>
<p>weißt du denn was ich in meinem vector gespeichert habe? ansonsten kannst du wohl die sinnhaftigkeit der operation nur schwer einschätzen. zugegeben meine beschreibung des problems hätte präziser sein können.</p>
<p>ist aber wirklich kein grund gleich so ausfallend zu werden.<br />
das rad immer neu zu erfinden ist nicht notwendig und ich will hier halt nicht allzu viel arbeit investieren.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20193">@Kóyaánasqatsi</a><br />
danke, dann werde ich mich wohl doch damit beschäftigen müssen.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a><br />
der zweidimensionale vektor enthält die pixelwerte des bildes.</p>
<p>jperl</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774551</guid><dc:creator><![CDATA[jperl]]></dc:creator><pubDate>Tue, 08 Sep 2009 12:46:49 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Tue, 08 Sep 2009 12:52:05 GMT]]></title><description><![CDATA[<p>jperl schrieb:</p>
<blockquote>
<p>ist aber wirklich kein grund gleich so ausfallend zu werden.<br />
das rad immer neu zu erfinden ist nicht notwendig und ich will hier halt nicht allzu viel arbeit investieren.</p>
</blockquote>
<p>Bin ich ausfallend geworden? Ich habe nur den Sinn in Frage gestellt. Es ist nun mal so, dass Standard-C++ keine Möglichkeit zur Bildbearbeitung bietet, also musst du dich mit externen Bibliotheken befassen. Und ob das nun die WinAPI, SFML oder sonst irgendwas ist, etwas Einarbeitungszeit brauchst du so oder so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774556</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 08 Sep 2009 12:52:05 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Tue, 08 Sep 2009 12:56:30 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>jperl schrieb:</p>
<blockquote>
<p>ist aber wirklich kein grund gleich so ausfallend zu werden.<br />
das rad immer neu zu erfinden ist nicht notwendig und ich will hier halt nicht allzu viel arbeit investieren.</p>
</blockquote>
<p>Bin ich ausfallend geworden? Ich habe nur den Sinn in Frage gestellt. Es ist nun mal so, dass Standard-C++ keine Möglichkeit zur Bildbearbeitung bietet, also musst du dich mit externen Bibliotheken befassen. Und ob das nun die WinAPI, SFML oder sonst irgendwas ist, etwas Einarbeitungszeit brauchst du so oder so.</p>
</blockquote>
<p>das nehme ich hiermit zur kenntnis.</p>
<p>das hättest du auch gleich schreiben können, ohne meine arbeitsmoral oder mein vorgehen anzuzweifeln.</p>
<p>jperl</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774560</guid><dc:creator><![CDATA[jperl]]></dc:creator><pubDate>Tue, 08 Sep 2009 12:56:30 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Tue, 08 Sep 2009 13:09:44 GMT]]></title><description><![CDATA[<p>Ich fand libpng ganz nett. Da gibts auch ein schönes <a href="http://www.nongnu.org/pngpp/" rel="nofollow">C++ Header-File dazu</a>. Allerdings müsstest Du den Inhalt des Vectors irgendwie in ein <code>png::image&lt;pixel_type&gt;</code> umwandeln und dann das Bild mit .write() in eine Datei schreiben.</p>
<p>Sonst gibt es noch recht billige Dateiformate, wie zB TGA. Das ist -- wenn ich mich richtig erinnere -- ein relativ einfacher 18byte-Header gefolgt von Rohdaten. -- Zum eben mal Testen / Reinhacken sollte das gehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774571</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Tue, 08 Sep 2009 13:09:44 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Tue, 08 Sep 2009 13:19:07 GMT]]></title><description><![CDATA[<p>Was du hier willst, ist dass dir jemand Code postet der dich vom std::vector zum Bild führt und du somit dir die Arbeit sparst. Ich kann aber nachvollziehen, dass die wenigsten dazu Lust haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774577</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Tue, 08 Sep 2009 13:19:07 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Tue, 08 Sep 2009 13:22:18 GMT]]></title><description><![CDATA[<p>Sebastian Pizer schrieb:</p>
<blockquote>
<p>Ich fand libpng ganz nett. Da gibts auch ein schönes <a href="http://www.nongnu.org/pngpp/" rel="nofollow">C++ Header-File dazu</a>. Allerdings müsstest Du den Inhalt des Vectors irgendwie in ein <code>png::image&lt;pixel_type&gt;</code> umwandeln und dann das Bild mit .write() in eine Datei schreiben.</p>
<p>Sonst gibt es noch recht billige Dateiformate, wie zB TGA. Das ist -- wenn ich mich richtig erinnere -- ein relativ einfacher 18byte-Header gefolgt von Rohdaten. -- Zum eben mal Testen / Reinhacken sollte das gehen.</p>
</blockquote>
<p>danke. werde ich mir mal ansehen.</p>
<p>wer einen umkomplizierten weg sucht und octave/matlab installiert hat, der soll einfach die daten im csv format auf die festplatte schreiben, diese dann dort einlesen und mit imshow anzeigen.<br />
ist aber nur eine sehr eingeschränkte lösung deswegen werde ich mir mal eine lib einverleiben.</p>
<p>jperl</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774581</guid><dc:creator><![CDATA[jperl]]></dc:creator><pubDate>Tue, 08 Sep 2009 13:22:18 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Tue, 08 Sep 2009 13:34:03 GMT]]></title><description><![CDATA[<p>Richtige stl-mäßige Bildbearbeitung gibt es in boost:</p>
<p><a href="http://www.boost.org/doc/libs/1_40_0/libs/gil/doc/index.html" rel="nofollow">http://www.boost.org/doc/libs/1_40_0/libs/gil/doc/index.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774595</guid><dc:creator><![CDATA[nn]]></dc:creator><pubDate>Tue, 08 Sep 2009 13:34:03 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Tue, 08 Sep 2009 13:35:32 GMT]]></title><description><![CDATA[<p>It0101 schrieb:</p>
<blockquote>
<p>Was du hier willst, ist dass dir jemand Code postet der dich vom std::vector zum Bild führt und du somit dir die Arbeit sparst. Ich kann aber nachvollziehen, dass die wenigsten dazu Lust haben.</p>
</blockquote>
<p>ich kenne ja das phänomen je besser man sich in einem thema auskennt, desto unfreundlicher wird man. aber trotzdem würde ich gerne zum konstruktiven teil, dieses threads zurückkommen.</p>
<p>jperl</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774600</guid><dc:creator><![CDATA[jperl]]></dc:creator><pubDate>Tue, 08 Sep 2009 13:35:32 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Tue, 08 Sep 2009 13:39:43 GMT]]></title><description><![CDATA[<p><strong>Sebastian</strong> und <strong>nn</strong> haben dir zwei gute Lösungen vorgestellt. Damit ist der konstruktive Teil doch abgehakt und deine Frage beantwortet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774602</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Tue, 08 Sep 2009 13:39:43 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Tue, 08 Sep 2009 13:40:43 GMT]]></title><description><![CDATA[<p>jperl schrieb:</p>
<blockquote>
<p>das hättest du auch gleich schreiben können, ohne meine arbeitsmoral oder mein vorgehen anzuzweifeln.</p>
</blockquote>
<p>jperl schrieb:</p>
<blockquote>
<p>ich kenne ja das phänomen je besser man sich in einem thema auskennt, desto unfreundlicher wird man. aber trotzdem würde ich gerne zum konstruktiven teil, dieses threads zurückkommen.</p>
</blockquote>
<p>Ich habe irgendwie das Gefühl, du bist etwas sensibel und kannst nicht so richtig mit Kritik an deiner Vorgehensweise (ohne Aufwand viel erreichen) umgehen. Dass du unsere Sätze als &quot;unfreundlich&quot; und &quot;ausfallend&quot; bezeichnest... Naja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774604</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 08 Sep 2009 13:40:43 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Tue, 08 Sep 2009 13:45:31 GMT]]></title><description><![CDATA[<p>It0101 schrieb:</p>
<blockquote>
<p><strong>Sebastian</strong> und <strong>nn</strong> haben dir zwei gute Lösungen vorgestellt. Damit ist der konstruktive Teil doch abgehakt und deine Frage beantwortet.</p>
</blockquote>
<p>meine frage ist auch beantwortet.<br />
deswegen war dein post auch überflüssig.</p>
<p>jperl</p>
<p>#edit<br />
mag sein dass ich ein wenig sensibel bin. eure statements waren meiner meinung nach einfach nicht gerechtfertigt und auch nicht notwendig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774607</guid><dc:creator><![CDATA[jperl]]></dc:creator><pubDate>Tue, 08 Sep 2009 13:45:31 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Tue, 08 Sep 2009 14:19:42 GMT]]></title><description><![CDATA[<p>jperl schrieb:</p>
<blockquote>
<p>#edit<br />
mag sein dass ich ein wenig sensibel bin. eure statements waren meiner meinung nach einfach nicht gerechtfertigt und auch nicht notwendig.</p>
</blockquote>
<p>sensibel stimmt. versetz dich mal in die Lage der Leute hier. dein erster und zweiter Post lesen sich zusammengefasst etwa wie &quot;ich will ein Bild, will mich aber nicht mit Bildformaten beschäftigen&quot;, was wiederum an die leider viel zu häufige Haltung &quot;gebt mir mal schnell meinen Code, ich hab keinen Bock den selber zu machen&quot; erinnert.<br />
Hier im Forum ists wie überall im Netz: Wenn sich deiner Meinung nach jemand ein wenig im Ton vergreift bringt es meistens nichts, sich drüber aufzuregen. Den Tonfall einfach ausblenden und dir die Infos rausziehen die du brauchst <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/1774638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774638</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 08 Sep 2009 14:19:42 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Wed, 09 Sep 2009 07:15:26 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>jperl schrieb:</p>
<blockquote>
<p>#edit<br />
mag sein dass ich ein wenig sensibel bin. eure statements waren meiner meinung nach einfach nicht gerechtfertigt und auch nicht notwendig.</p>
</blockquote>
<p>sensibel stimmt. versetz dich mal in die Lage der Leute hier. dein erster und zweiter Post lesen sich zusammengefasst etwa wie &quot;ich will ein Bild, will mich aber nicht mit Bildformaten beschäftigen&quot;, was wiederum an die leider viel zu häufige Haltung &quot;gebt mir mal schnell meinen Code, ich hab keinen Bock den selber zu machen&quot; erinnert.<br />
Hier im Forum ists wie überall im Netz: Wenn sich deiner Meinung nach jemand ein wenig im Ton vergreift bringt es meistens nichts, sich drüber aufzuregen. Den Tonfall einfach ausblenden und dir die Infos rausziehen die du brauchst <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>
</blockquote>
<p>ich war wohl heute auch nicht allzu gut drauf, deshalb habe ich das wohl ein wenig persönlich genommen.</p>
<p>folgendes problem:<br />
irgendwo scheint ein fehler zu sein. ich will mir ein 2x2 bild erzeugen gleich dem wie der header hier angegeben ist:<br />
<a href="http://en.wikipedia.org/wiki/BMP_file_format#Example_of_a_2x2_Pixel.2C_24-Bit_Bitmap" rel="nofollow">http://en.wikipedia.org/wiki/BMP_file_format#Example_of_a_2x2_Pixel.2C_24-Bit_Bitmap</a></p>
<p>meine daten betrachte ich einfach als grauwerte, also schreibe ich in alle 3 byte den gleichen wert. im moment sind die pixelwerte noch mit null initialisiert.</p>
<p>meine erzeugte datei in hex sieht so aus:<br />
42 4d 00 00 46 00 00 00 00 00 00 00 36 00 00 00 28 00 00 00 02 00 00 00 02 00 00 00 01 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</p>
<p>aussehen sollte sie so (ist getestet, diese datei kann ich öffnen):<br />
42 4d 46 00 00 00 00 00 00 00 36 00 00 00 28 00 00 00 02 00 00 00 02 00 00 00 01 00 18 00 00 00 00 00 10 00 00 00 13 0b 00 00 13 0b 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff 00 00 ff 00 00 00 ff 00 00 00</p>
<p>sieht jemand den fehler. <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=":confused:"
      alt="😕"
    /></p>
<pre><code class="language-cpp">#include &lt;vector&gt;
#include &lt;string&gt;

typedef struct {
	 char id[2]; //magic number
	 unsigned long filesize; //size of the file
	 unsigned short reserved[2]; //unused
	 unsigned long headersize; //the offset where the bitmap data (pixels) can be found
	 unsigned long infoSize; //the number of bytes in the header (from this point)
	 unsigned long width; //width of image
	 unsigned long height; //height of the image
	 unsigned short biPlanes; //number of color planes
	 unsigned short bits; //number of bits/pixel
	 unsigned long biCompression; //if compression is used
	 unsigned long biSizeImage; //size of raw BMP data
	 unsigned long biXPelsPerMeter; //horizontal resolution
	 unsigned long biYPelsPerMeter; //vertical resolution
	 unsigned long biClrUsed; //number of colors in the palette
	 unsigned long biClrImportant; //importance of colors
} BMPHEAD;

void vec2bmp(std::vector&lt; std::vector&lt; char &gt; &gt; &amp;v, std::string filename)
{
	BMPHEAD bh;

	memset((char *)&amp;bh, 0, sizeof(BMPHEAD));
	memcpy(bh.id, &quot;BM&quot;, 2);
	bh.headersize = 54;  
	bh.infoSize = 40; 
	bh.height = static_cast&lt;long&gt;(v.size());
	bh.width = static_cast&lt;long&gt;(v[0].size());
	bh.biPlanes =  1; //1 color plane
	bh.bits = 24; //24bit
	bh.biCompression = 0L; //no compression

	int bytesPerLine;

	bytesPerLine = bh.width * 3;
	/* round up to bytesPerLine % 4 == 0 */
	if (bytesPerLine &amp; 0x0003) 
	{
		bytesPerLine |= 0x0003;
		++bytesPerLine;
	}

	bh.filesize = bh.headersize + (long)bytesPerLine * bh.height;

	FILE * bmpfile;
	bmpfile = fopen(filename.c_str(), &quot;wb&quot;);
	if (bmpfile == NULL)
	{
	   printf(&quot;Error opening output file\n&quot;);
	   std::exit(1);
	}
	fwrite(&amp;bh, 1, sizeof (bh), bmpfile);

	//buffer for one line
	char *linebuf;

	linebuf = new char[bytesPerLine];
	for(int i = 0; i &lt; bytesPerLine; ++i)
		linebuf[i] = 0;

	int line;
	for (line = bh.height - 1; line &gt;= 0; line--)
	{
	   /* fill line linebuf with the image data for that line */
		for(int col = 0; col &lt; bh.width; ++col)
		{
			//std::cout &lt;&lt; line &lt;&lt; &quot; &quot; &lt;&lt; col &lt;&lt; std::endl;
			int sI = col*3;
			linebuf[sI] = v[line][col];
			linebuf[++sI] = v[line][col];
			linebuf[++sI] = v[line][col];
		}

		fwrite(linebuf, 1, bytesPerLine, bmpfile);
	}

	fclose(bmpfile);
};
</code></pre>
<p>der aufruf sieht wie folgt aus:</p>
<pre><code class="language-cpp">std::vector&lt; std::vector &lt; char &gt; &gt; v(2, std::vector&lt; char &gt;(2, 0));
vec2bmp(v, &quot;test.bmp&quot;);
</code></pre>
<p>jperl</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774752</guid><dc:creator><![CDATA[jperl]]></dc:creator><pubDate>Wed, 09 Sep 2009 07:15:26 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Tue, 08 Sep 2009 17:52:34 GMT]]></title><description><![CDATA[<p>wird vermutlich am structure packing liegen.</p>
<pre><code class="language-cpp">#pragma pack(push)
#pragma pack(1)

typedef struct {
     char id[2]; //magic number
     unsigned long filesize; //size of the file
     unsigned short reserved[2]; //unused
     unsigned long headersize; //the offset where the bitmap data (pixels) can be found
     unsigned long infoSize; //the number of bytes in the header (from this point)
     unsigned long width; //width of image
     unsigned long height; //height of the image
     unsigned short biPlanes; //number of color planes
     unsigned short bits; //number of bits/pixel
     unsigned long biCompression; //if compression is used
     unsigned long biSizeImage; //size of raw BMP data
     unsigned long biXPelsPerMeter; //horizontal resolution
     unsigned long biYPelsPerMeter; //vertical resolution
     unsigned long biClrUsed; //number of colors in the palette
     unsigned long biClrImportant; //importance of colors
} BMPHEAD;

#pragma pack(pop)

// ...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1774794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774794</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 08 Sep 2009 17:52:34 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Wed, 09 Sep 2009 06:19:06 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>wird vermutlich am structure packing liegen.</p>
<pre><code class="language-cpp">#pragma pack(push)
#pragma pack(1)

typedef struct {
     char id[2]; //magic number
     unsigned long filesize; //size of the file
     unsigned short reserved[2]; //unused
     unsigned long headersize; //the offset where the bitmap data (pixels) can be found
     unsigned long infoSize; //the number of bytes in the header (from this point)
     unsigned long width; //width of image
     unsigned long height; //height of the image
     unsigned short biPlanes; //number of color planes
     unsigned short bits; //number of bits/pixel
     unsigned long biCompression; //if compression is used
     unsigned long biSizeImage; //size of raw BMP data
     unsigned long biXPelsPerMeter; //horizontal resolution
     unsigned long biYPelsPerMeter; //vertical resolution
     unsigned long biClrUsed; //number of colors in the palette
     unsigned long biClrImportant; //importance of colors
} BMPHEAD;

#pragma pack(pop)

// ...
</code></pre>
</blockquote>
<p>genau daran lag es. vielen dank.<br />
daran hatte ich gar nicht gedacht.</p>
<p>jperl</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1774948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1774948</guid><dc:creator><![CDATA[jperl]]></dc:creator><pubDate>Wed, 09 Sep 2009 06:19:06 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Wed, 09 Sep 2009 17:11:07 GMT]]></title><description><![CDATA[<p>nächstes mal einfach die vordefinierten structs aus den windows-headers verwenden, dann musst du dich darum nicht kümmern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1775448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775448</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 09 Sep 2009 17:11:07 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] einfachster weg von std::vector zu bild auf der festplatte on Thu, 10 Sep 2009 09:33:55 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>nächstes mal einfach die vordefinierten structs aus den windows-headers verwenden, dann musst du dich darum nicht kümmern.</p>
</blockquote>
<p>davon gibt es aber kein entsprechendes pendant für linux oder?</p>
<p>jperl</p>
<p>achja zur info:<br />
hätte hier jetzt eine einfache klasse gefunden die ich eigentlich gesucht hätte.<br />
hab aber nur kurz drübergeschaut, da ich jetzt ja meine eigene routine habe.<br />
scheint ganz ok zu sein:<br />
<a href="http://www.kalytta.com/bitmap.h" rel="nofollow">http://www.kalytta.com/bitmap.h</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1775616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775616</guid><dc:creator><![CDATA[jperl]]></dc:creator><pubDate>Thu, 10 Sep 2009 09:33:55 GMT</pubDate></item></channel></rss>