<?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[Inoffizielle Standardklassen&#x2F;Pseudostandards]]></title><description><![CDATA[<p>Folgendes Szenario: Ich schreibe ein Programm das<br />
a) Bilder in verschiedenen Formaten öffnen und speichern kann<br />
b) Bilder bearbeiten kann und<br />
c) Bilder anzeigen kann.</p>
<p>Für a)--c) werden existierende Bibliotheken verwendet. Jede dieser Bibliotheken verfügt über eine eigene Klasse die ein Bild repräsentiert. Möchte ich nun ein Bild laden, bearbeiten und dann anzeigen muß ich also erst ein Bild des Typs A in B konvertieren um es zu bearbeiten, und anschließend in Typ C konvertieren damit ich es in der GUI anzeigen kann.</p>
<p>Frage: Gibt es irgendwelche inoffizielen Standardklassen die von vielen Bibliotheken unterstützt werden, so daß ich Objekte nicht außerhalb konvertieren muß, sondern mit der Standardklasse arbeiten kann?</p>
<p>Die Frage bezieht sich nicht nur auf Bilder, sondern generell um häufig benutzte Sachen, zB auch Audiodaten, Video etc.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/258193/inoffizielle-standardklassen-pseudostandards</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 12:06:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/258193.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 07 Jan 2010 15:57:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Inoffizielle Standardklassen&#x2F;Pseudostandards on Thu, 07 Jan 2010 15:57:24 GMT]]></title><description><![CDATA[<p>Folgendes Szenario: Ich schreibe ein Programm das<br />
a) Bilder in verschiedenen Formaten öffnen und speichern kann<br />
b) Bilder bearbeiten kann und<br />
c) Bilder anzeigen kann.</p>
<p>Für a)--c) werden existierende Bibliotheken verwendet. Jede dieser Bibliotheken verfügt über eine eigene Klasse die ein Bild repräsentiert. Möchte ich nun ein Bild laden, bearbeiten und dann anzeigen muß ich also erst ein Bild des Typs A in B konvertieren um es zu bearbeiten, und anschließend in Typ C konvertieren damit ich es in der GUI anzeigen kann.</p>
<p>Frage: Gibt es irgendwelche inoffizielen Standardklassen die von vielen Bibliotheken unterstützt werden, so daß ich Objekte nicht außerhalb konvertieren muß, sondern mit der Standardklasse arbeiten kann?</p>
<p>Die Frage bezieht sich nicht nur auf Bilder, sondern generell um häufig benutzte Sachen, zB auch Audiodaten, Video etc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834475</guid><dc:creator><![CDATA[Toddy69]]></dc:creator><pubDate>Thu, 07 Jan 2010 15:57:24 GMT</pubDate></item><item><title><![CDATA[Reply to Inoffizielle Standardklassen&#x2F;Pseudostandards on Thu, 07 Jan 2010 16:06:44 GMT]]></title><description><![CDATA[<p>Wie sollte das denn gehen? o0<br />
Bei Bildern ist es doch einfach so, dass du ein Array mit den Farbwerten (bis zu 32-bit) übergibst. Habe damals die Loader selber geschrieben, bis auf PNG und JPEG ist eigentlich jeweils jeder Parser in ein paar Stunden geproggt. Schreib doch einfach eine Klasse, die anhand der Farbwerte eine jeweilige Bilddatei erstellt. Verstehe nicht warum Leute immer meinen, tausende von libs zu benutzen... habe dabei damals recht viel gelernt <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=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834481</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Thu, 07 Jan 2010 16:06:44 GMT</pubDate></item><item><title><![CDATA[Reply to Inoffizielle Standardklassen&#x2F;Pseudostandards on Thu, 07 Jan 2010 16:58:53 GMT]]></title><description><![CDATA[<p>Ja, richtig. Ein int-Array ist der gemeinsame Nenner eine jeden Bildklasse, aber auch da gibt es schon wieder mehrere Möglichkeiten das repräsentieren. Nehme ich ein eindimensionales Array und speicher zusätzlich Höhe oder Breite ab? Oder gleich ein zweidimensionales? Vielleicht kann das Array sogar größer als Bild sein, damit ich nach beschneiden kein neues Array erzeugen muß (wird zum Beispiel in Java so gemacht). Deswegen ja auch die Frage, ob es sowas wie Standards gibt, dann wäre das genau definiert.</p>
<p>Warum libs nutzen? Weils produktiv ist! Ich sehe keinen Grund etwas was es schon gibt und lizenzrechtlich in Frage kommt nicht zu nutzen. Darin enthaltene Bugs sind nicht mein Problem, bzw. bei freien Bibliotheken nicht ausschließlich mein Problem. Ich spare Entwicklungskosten, evtl Speicherplatz beim Anwender (zumindest unter Linux wo externe Bibliotheken systemweit sind). Ich finde es äußerst vorteilhaft. Ein Jpeg kriegt man durchaus noch in angemessener Zeit decodiert, aber will man das? Was ist, wenn ich plötzlich ein Video abspielen will? Einen hochkomprimierten Videostream zu decodieren ist nicht gerade ne Aufgabe die man mal eben in der Mittagspause implementiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834543</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834543</guid><dc:creator><![CDATA[Toddy69]]></dc:creator><pubDate>Thu, 07 Jan 2010 16:58:53 GMT</pubDate></item><item><title><![CDATA[Reply to Inoffizielle Standardklassen&#x2F;Pseudostandards on Thu, 07 Jan 2010 17:09:53 GMT]]></title><description><![CDATA[<p>Ein zweidimensionales Array bringt dir nur Nachteile.<br />
Selbstverständlich kann das Array auch größer sein als für das aktuelle Bild notwendig wäre.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834549</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Thu, 07 Jan 2010 17:09:53 GMT</pubDate></item><item><title><![CDATA[Reply to Inoffizielle Standardklassen&#x2F;Pseudostandards on Thu, 07 Jan 2010 20:21:38 GMT]]></title><description><![CDATA[<p>Toddy69 schrieb:</p>
<blockquote>
<p>Ein int-Array ist der gemeinsame Nenner eine jeden Bildklasse</p>
</blockquote>
<p>Äh, nö. Eher nen unsigned char (0 to 256).</p>
<p>Toddy69 schrieb:</p>
<blockquote>
<p>ehme ich ein eindimensionales Array und speicher zusätzlich Höhe oder Breite ab? Oder gleich ein zweidimensionales?</p>
</blockquote>
<p>o0<br />
Im Prinzip tut's schon diese Struktur, um zwischen den verschiedenen (gekapselten!) Klassen zu kommunizieren: (Vorsicht, ungetestet!)</p>
<pre><code class="language-cpp">struct ImageData
{
	ImageData(const unsigned int Width,
		      const unsigned int Height,
			  const unsigned char BPP,
			  const std::vector&lt;unsigned char&gt; PixelBuffer) :
		ImageWidth(Width),
		ImageHeight(Height),
		ImageBPP(BPP),
		ImagePixelBuffer(PixelBuffer) { }

	const unsigned int ImageWidth;
	const unsigned int ImageHeight;
	const unsigned char ImageBPP;
	std::vector&lt;unsigned char&gt; ImagePixelBuffer;
};
</code></pre>
<p>Toddy69 schrieb:</p>
<blockquote>
<p>Warum libs nutzen?</p>
</blockquote>
<p>Um Erfahrung zu sammeln und damit du solche Fragen nicht mehr stellen musst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834667</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Thu, 07 Jan 2010 20:21:38 GMT</pubDate></item><item><title><![CDATA[Reply to Inoffizielle Standardklassen&#x2F;Pseudostandards on Thu, 07 Jan 2010 20:34:52 GMT]]></title><description><![CDATA[<p>Kóyaánasqatsi schrieb:</p>
<blockquote>
<p>Im Prinzip tut's schon diese Struktur, um zwischen den verschiedenen (gekapselten!) Klassen zu kommunizieren</p>
</blockquote>
<p>Genau sowas hab ich auch geschrieben, außer dass ich einen Array aus sizeof(int) Color structs hatte und es nicht nur für Bilder nutze.</p>
<p>Ich finde die Idee von standardisierten Klassen oder Interfaces gar nicht schlecht, ich glaube nur dass wir noch nicht soweit sind. Bestimmte Lösungen und auch Implementationen müssen wohl x mal programmiert werden bis sich eine gewisse Struktur herauskristallisiert, auf die man sich einigen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834670</guid><dc:creator><![CDATA[Kontrasubjekt]]></dc:creator><pubDate>Thu, 07 Jan 2010 20:34:52 GMT</pubDate></item><item><title><![CDATA[Reply to Inoffizielle Standardklassen&#x2F;Pseudostandards on Thu, 07 Jan 2010 20:38:23 GMT]]></title><description><![CDATA[<p>Ich verstehe die Diskussion nicht...<br />
Z.B. bietet Qt in seinem Image-Klassen (QImage, QPixmap,...) die Möglichkeit, direkt auf das array zuzugreifen, um es zu bearbeiten. QImage ist für solche Bearbeitungen optimiert.<br />
Es gibt für die Standard-Bildformate die einem so über den Weg laufen, qimage-plugins, die Laden und Speichern Implementieren.<br />
Du musst also gar nichts mehr machen!</p>
<p>Ich bin mir sicher dass das bei wxWidgets ähnlich ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834672</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Thu, 07 Jan 2010 20:38:23 GMT</pubDate></item><item><title><![CDATA[Reply to Inoffizielle Standardklassen&#x2F;Pseudostandards on Thu, 07 Jan 2010 20:43:53 GMT]]></title><description><![CDATA[<p>Toddy69! Schau dir mal die Bibliothek-Sammlung <a href="http://stlab.adobe.com/" rel="nofollow">http://stlab.adobe.com/</a> von Adobe an. Die haben darunter eine speziell für Bildbearbeitung, die sich Generic Image Library nennt. Diese ist mittlerweile in der Boost Sammlung enthalten:<br />
<a href="http://www.boost.org/doc/libs/1_41_0/libs/gil/doc/index.html" rel="nofollow">http://www.boost.org/doc/libs/1_41_0/libs/gil/doc/index.html</a></p>
<p>Was sie allerdings nicht kann, ist Bilder anzeigen. Dafür brauchst du schon eine GUI Bibliothek.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834675</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Thu, 07 Jan 2010 20:43:53 GMT</pubDate></item><item><title><![CDATA[Reply to Inoffizielle Standardklassen&#x2F;Pseudostandards on Thu, 07 Jan 2010 20:53:37 GMT]]></title><description><![CDATA[<p>unsigned char wohl kaum. RGB und Alpha mit jeweils 8 Bit machen 32 Bit also insigned int. Aber darum gehts nicht. Ich bin durchaus in der Lage eine Klasse zu entwerfen die Bilder implementiert. Genau das ist ja das Problem, diese Klassenvielfalt die im Grunde alle dem selben Zweck dienen sind den Bibliotheken nicht bekannt. Deine Klasse wäre eben zu diesem Zweck geeignet, nur wird sie eine Bibliothek natürlich nicht kennen.</p>
<p>Gegenbeispiel wäre der String. Wenn ich irgendwo einen String übergeben kann, werde ich in der Regel einen std::string übergeben können (oder char-Array natürlich), und nicht ein StringImplementierungDieTausendste-Objekt. Das ist eine Implementierung die idR jeder benutzt und die problemlos von verschiedenen Komponenten benutzt werden kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834684</guid><dc:creator><![CDATA[Toddy69]]></dc:creator><pubDate>Thu, 07 Jan 2010 20:53:37 GMT</pubDate></item><item><title><![CDATA[Reply to Inoffizielle Standardklassen&#x2F;Pseudostandards on Thu, 07 Jan 2010 21:32:06 GMT]]></title><description><![CDATA[<p>Toddy69 schrieb:</p>
<blockquote>
<p>unsigned char wohl kaum. RGB und Alpha mit jeweils 8 Bit machen 32 Bit also insigned int.</p>
</blockquote>
<p>Moooooment:</p>
<pre><code class="language-cpp">const unsigned char RGBA[4][0xff] = { 0xff, 0xff, 0xff, 1 };
//					                 R     G     B    A
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1834701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834701</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Thu, 07 Jan 2010 21:32:06 GMT</pubDate></item><item><title><![CDATA[Reply to Inoffizielle Standardklassen&#x2F;Pseudostandards on Thu, 07 Jan 2010 22:01:13 GMT]]></title><description><![CDATA[<p>Das macht Farbvergleiche -- welche sicher häufiger als Komponentenvegleiche sind -- aber sehr unpraktisch. Trotzdem: Es geht mir nicht um Bilder! Es geht mir um das Konzept von standardisierten Klassen.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1463">@Artchi</a>: Die Generic Image Library scheint in der Tat ein Kandidat für diesen Zweck zu sein, zumal sie mit Boost gut verfügbar sind. Aber werden sie auch wirklich überall genutzt? Eher nicht, also zumindest <em>noch</em> kein Standard. Und das wären bis jetzt auch erst Bilder, andere häufige Typen wären damit auch noch nicht erschlagen.</p>
<p>Sieht also eher so aus, als gibt es das in der Form tatsächlich nicht, und einzig Collections und strings folgen einem Standard.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834719</guid><dc:creator><![CDATA[Toddy69]]></dc:creator><pubDate>Thu, 07 Jan 2010 22:01:13 GMT</pubDate></item><item><title><![CDATA[Reply to Inoffizielle Standardklassen&#x2F;Pseudostandards on Thu, 07 Jan 2010 22:03:03 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20193">@Kóyaánasqatsi</a>:</p>
<blockquote>
<p>bis auf PNG und JPEG ist eigentlich jeweils jeder Parser in ein paar Stunden geproggt</p>
</blockquote>
<p>Das zeigt wieder mal deutlich dass du keine Ahnung hast. Einen BMP-Reader der ausschliesslich 24 Bit Bilder laden kann hat man in ein paar Stunden, ja. Alle anderen interessanten Formate (GIF, TIFF, TGA, Photoshop etc.) sind aufwendiger. Wesentlich aufwendiger.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22728">@Toddy69</a>:<br />
Nimm doch einfach eine fertige Library, die alle benötigten Bildformate lesen und schreiben kann. Kandidaten wären die DevIL bzw. die FreeImage.<br />
Falls die Library von Adobe auch viele Formate lesen/schreiben kann, wäre die natürlich auch geeignet.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1463">@Artchi</a>:<br />
Weisst du welche Formate die Adobe Library lesen/schreiben kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834722</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 07 Jan 2010 22:03:03 GMT</pubDate></item><item><title><![CDATA[Reply to Inoffizielle Standardklassen&#x2F;Pseudostandards on Thu, 07 Jan 2010 22:06:54 GMT]]></title><description><![CDATA[<p>Toddy69 schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1463">@Artchi</a>: Die Generic Image Library scheint in der Tat ein Kandidat für diesen Zweck zu sein, zumal sie mit Boost gut verfügbar sind. Aber werden sie auch wirklich überall genutzt? Eher nicht, also zumindest <em>noch</em> kein Standard.</p>
</blockquote>
<p>Die Generic Image Library ist im Moment ganz weit weg davon &quot;Standard&quot; zu sein.</p>
<p>Der Quasi-Standard ist im Moment (leiter!) die DevIL.<br />
Irgendwie verwendet sogut wie jedes Projekt, welches nicht libpgn/libjpeg direkt verwendet, die DevIL. Obwohl sie was das Interface angeht eine Katastrophe ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834726</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834726</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 07 Jan 2010 22:06:54 GMT</pubDate></item><item><title><![CDATA[Reply to Inoffizielle Standardklassen&#x2F;Pseudostandards on Thu, 07 Jan 2010 22:07:50 GMT]]></title><description><![CDATA[<p>Warum sollte TGA aufwendiger sein? Mit den anderen Formaten habe ich mich noch nicht befasst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1834727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1834727</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Thu, 07 Jan 2010 22:07:50 GMT</pubDate></item></channel></rss>