<?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[TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem)]]></title><description><![CDATA[<p>Hi !</p>
<p>Ich habe wie in der FAQ beschrieben den BCB eingestellt um eine Standalone EXE zu erzeugen, also eine die auch auf anderen Systemen läuft die nicht BCB inst. haben. Soweit ist das auch kein Problem ABER: Mein Programm macht folgendes es läd ein bmp Bild berechnet einen Filter darauf und zeigt das ganze wieder an. Wenn ich das Programm nun so kompiliere das es nur auf BCB Systemen läuft funktioniert alles 1A aber wenn ich es so comp. das es auf anderen Systemen läuft wird das Ergebnis ganz komisch Grün/Gelb ????? Irgendwelche Ideen ? Danke !</p>
<p><strong>Edit:</strong><br />
Bitte aussagekräftige Überschriften wählen. Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/74937/tcanvas-pixels-resultate-variieren-bei-standalone-runtimepackages-kompilat-war-standalone-exe-tipp-aus-faq-problem</link><generator>RSS for Node</generator><lastBuildDate>Sun, 28 Jun 2026 17:21:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/74937.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 25 May 2004 21:04:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Wed, 02 Jun 2004 14:30:27 GMT]]></title><description><![CDATA[<p>Hi !</p>
<p>Ich habe wie in der FAQ beschrieben den BCB eingestellt um eine Standalone EXE zu erzeugen, also eine die auch auf anderen Systemen läuft die nicht BCB inst. haben. Soweit ist das auch kein Problem ABER: Mein Programm macht folgendes es läd ein bmp Bild berechnet einen Filter darauf und zeigt das ganze wieder an. Wenn ich das Programm nun so kompiliere das es nur auf BCB Systemen läuft funktioniert alles 1A aber wenn ich es so comp. das es auf anderen Systemen läuft wird das Ergebnis ganz komisch Grün/Gelb ????? Irgendwelche Ideen ? Danke !</p>
<p><strong>Edit:</strong><br />
Bitte aussagekräftige Überschriften wählen. Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/527279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/527279</guid><dc:creator><![CDATA[ZeroooO]]></dc:creator><pubDate>Wed, 02 Jun 2004 14:30:27 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Wed, 26 May 2004 07:53:16 GMT]]></title><description><![CDATA[<p>Wenn du einen Filter von Borland verwendest, must du sicher irgend eine Komponente mit dazu geben. FiktiverFilter.bpl oder so.<br />
Wenn du selber einen Filter schreibst, also jedes einzelne Pixel ausließt, deine Berechnungen machst und den Pixel dann wieder ausgiebst, muss es eigentlich funktionieren.<br />
Du benutzt ein einzelnes Image? Kein ImageList.<br />
Bitmaps sind gratis. Um in BCB Gif's zu laden, braucht man teure Lizenzen. Und um JPG's anzuzeigen UND zu bearbeiten, muss man viele viele Codezeilen schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/527393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/527393</guid><dc:creator><![CDATA[The OS]]></dc:creator><pubDate>Wed, 26 May 2004 07:53:16 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Wed, 26 May 2004 08:19:51 GMT]]></title><description><![CDATA[<p>Also ich benutze kein Filter von Borland sondern lese das Bitmap (nur Bitmap) immer in Pixel Blöcken Pixel für Pixel aus berechne den Block neu und scheibe wieder Pixel für Pixel. Dazu benutze ich diese &quot;Canvas-&gt;Pixels[x][y]&quot; Funktion.<br />
Was müsste ich denn da mit einbinden damit es geht ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/527418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/527418</guid><dc:creator><![CDATA[ZerooooO]]></dc:creator><pubDate>Wed, 26 May 2004 08:19:51 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Wed, 26 May 2004 08:29:25 GMT]]></title><description><![CDATA[<p>Nichts.</p>
<p>EDIT:</p>
<p>The OS schrieb:</p>
<blockquote>
<p>Um in BCB Gif's zu laden, braucht man teure Lizenzen</p>
</blockquote>
<p>Plemm Plemm?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/527424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/527424</guid><dc:creator><![CDATA[Windoof]]></dc:creator><pubDate>Wed, 26 May 2004 08:29:25 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Wed, 26 May 2004 15:41:16 GMT]]></title><description><![CDATA[<p>...also nichts habe ich schon versucht aber das geht eben nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/527780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/527780</guid><dc:creator><![CDATA[ZeroooooO]]></dc:creator><pubDate>Wed, 26 May 2004 15:41:16 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Wed, 26 May 2004 16:43:21 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/3286">@windoof</a>:</p>
<p>Wer ist hier 'Plemm Plemm'? AFAIK liegt ein Patent auf dem GIF-Algorithmus. Um GIFs zu verwenden benötigt man also auch die entsprechende Lizenz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/527829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/527829</guid><dc:creator><![CDATA[Grossmeister]]></dc:creator><pubDate>Wed, 26 May 2004 16:43:21 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Wed, 26 May 2004 21:45:37 GMT]]></title><description><![CDATA[<p>Ähhh.. weiss villeicht jemand doch was zum Thema ??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/527991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/527991</guid><dc:creator><![CDATA[ZerooooO]]></dc:creator><pubDate>Wed, 26 May 2004 21:45:37 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Thu, 27 May 2004 07:40:45 GMT]]></title><description><![CDATA[<p>Die GIF-Patente laufen in Kürze (Mai oder Juni) aus, sind also kein grosses Problem mehr. Allerdings gibt es ja auch einen Patentstreit um JPEG, so dass in Zukunft möglicherweise auch dort Lizenzgebühren anfallen.<br />
Zum Anzeigen und Bearbeiten von JPEGs sind aber keineswegs keineswegs besonders viele Zeilen Code erforderlich (jpeg.hpp).</p>
<p>ZeroooO:<br />
Ohne mehr Informationen über das Entwicklungssystem und über den/die Testrechner und ggf. Details der Implementierung bzw. Anwendung deines Filters wird dir kaum jemand helfen können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/528062</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/528062</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Thu, 27 May 2004 07:40:45 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Fri, 28 May 2004 12:20:20 GMT]]></title><description><![CDATA[<p>ohne weitere Info kann man Dir nicht helfen...</p>
<p>Spontan fallen mir als potentielle Fehlerquellen ein:<br />
Andere Farbtiefe auf dem zweiten Rechner.<br />
Falsches Pixelformat in TBitmap angegeben.<br />
Rechenfehler in Routine.<br />
Probleme mit Grafikkartentreiber.</p>
<p>Übrigens ist die Verwendung von Scanline um ein vielfaches schneller als Canvas[x,y].</p>
<p>Schau mal in die Onlinehilfe (aber Vorsicht, im Beispiel dort wird mit Byte* für den Zugriff auf Scanline gearbeitet. Das funktioniert aber nur bei Pixelformat pf8Bit. Für 16 bit mußt Du Word* nehmen, für 24 bit RGB*).</p>
<p>Es ist mit Sicherheit kein Einstellungsproblem für Stand-Alone-Exes! Das Problem ist in der Verwendung von TBitamp, respektive dem Canvas zu suchen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/528978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/528978</guid><dc:creator><![CDATA[Joe_M]]></dc:creator><pubDate>Fri, 28 May 2004 12:20:20 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Wed, 02 Jun 2004 14:19:11 GMT]]></title><description><![CDATA[<p>Ich hab das Projekt mal unter <a href="http://www.vdecine.net/filter.zip" rel="nofollow">www.vdecine.net/filter.zip</a> hochgeladen villeicht kann man da jemand sagen wo der Fehler liegt.. ich bekomme es nicht hin... Danke !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/531657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/531657</guid><dc:creator><![CDATA[ZeroooooO]]></dc:creator><pubDate>Wed, 02 Jun 2004 14:19:11 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Wed, 02 Jun 2004 14:36:45 GMT]]></title><description><![CDATA[<p>Du hast vergessen, <em>Unit1.h</em> mitzuliefern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/531671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/531671</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Wed, 02 Jun 2004 14:36:45 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Wed, 02 Jun 2004 15:16:56 GMT]]></title><description><![CDATA[<p>Auch ohne die Unit.h kann ich erkennen, dass an keiner stelle des Codes auf die Farbtiefe des Bitmaps, oder die des Screens eingegangen wird... Wie in meinem vorherigen Posting schon vermutet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/531714</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/531714</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 02 Jun 2004 15:16:56 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Wed, 02 Jun 2004 15:22:16 GMT]]></title><description><![CDATA[<p>Die Problembeschreibung legt allerdings nahe, dass das Phänomen auch auf dem Entwicklungsrechner, also mit identischem Test-Bitmap und bei identischer Farbtiefe auftritt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/531721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/531721</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Wed, 02 Jun 2004 15:22:16 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Wed, 02 Jun 2004 18:01:48 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/52">@Jansen</a>:<br />
hm, wenn dem tatsächlich so ist, dass es auf ein und demselben Rechner, abhängig von der Kompilierungsart, unterschiedliche Ergebnisse gbt, bleiben nicht viele Möglichkeiten. Es müßte schon irgenwie einen Unterschied in den Bibliotheken geben.</p>
<p>Zero.. kann man die Header Datei nachliefern, dann können wir es ausprobieren.</p>
<p>@Zero..:<br />
In der Zwischenzeit kannst Du versuchsweise immer nur Einstellung ändern, um festzustellen, ob sich das an einer einzelnen Einstellung fest machen läßt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/531857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/531857</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 02 Jun 2004 18:01:48 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Wed, 02 Jun 2004 21:09:32 GMT]]></title><description><![CDATA[<p>Sorry wegen der fehlenden Datei.. sollte jetzt dabei sein (gleicher Link). Also das Problem tritt bei ein und demselbem rechner auf je nachdem wie ich kompiliere.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/531992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/531992</guid><dc:creator><![CDATA[ZerooooO]]></dc:creator><pubDate>Wed, 02 Jun 2004 21:09:32 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Thu, 03 Jun 2004 11:07:12 GMT]]></title><description><![CDATA[<p>hm, ich hab' mir das mal angesehen. Der Effekt ist reproduzierbar und abhänging von mit oder ohne Laufzeitpackages compilieren. Dennoch fürchte ich fast es ist ein Fehler in der Routine. Da wird so viel hin- und herkonvertiert, dass ich dabei einen Fehler vermute. Ich denke es ist mehr oder weniger Zufall, dass es mit Laufzeitpackages funtktioniert.</p>
<p>Wenn man sich mal ansieht was in den Canvas reingeschrieben wird:<br />
mit ohne Laufzeitpackeges<br />
0x00736E6F 0x00067463 Wert an identischer Canvasposition!<br />
0x003A3939 0x00033A3F</p>
<p>interessant ist:<br />
0x00000100 0x00000100 Werte identisch!!<br />
0x00000600 0x00000600<br />
Offensichtlich werden alle Werte unter 0x600 mit und ohne LZP identisch berechnet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/532232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/532232</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 03 Jun 2004 11:07:12 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Thu, 03 Jun 2004 16:23:28 GMT]]></title><description><![CDATA[<p>1. hast du schon mal vas von Code-Einrückung gehört?</p>
<p>2. Das kann ja nicht gutgehen:</p>
<pre><code class="language-cpp">int Matrix[10];

...

    for (int k=0;k&lt;pBitmap-&gt;Height;k++) {
...
      for (int n=0;n&lt;pBitmap-&gt;Width;n++) {
...
        for (int y=NowY;y&lt;k+3;y++) {
          for (int x=NowX;x&lt;n+3;x++) {

            Matrix[j]=Canvas-&gt;Pixels[x][y];                                                 // Get 3x3 Pixels

            j=j+1;
          }
        }
      }
    }
</code></pre>
<p>wie groß ist Matrix und wie groß wird j?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/532434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/532434</guid><dc:creator><![CDATA[Geo]]></dc:creator><pubDate>Thu, 03 Jun 2004 16:23:28 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Fri, 04 Jun 2004 10:06:18 GMT]]></title><description><![CDATA[<p>zu 1. ja sorry ist recht hingesaut.</p>
<p>zu 2. Matrix sollte 9 (3*3) Werte beinhalten, dementsprechend sollte (da es funktuioniert geh ich schon davon aus das dem so ist) j auch max 9 werden.<br />
Es geht darum bei jedem Schleifen Durchlauf einen die RGB Werte von 9 Pixeln in einem 3x3 Block auszulesen dafür wird mit den schleifen k + n das bild von links nach rechts und oben nach unten in 3 Pixel breiten Zeilen ausgelesen und die Werte von einem Block (3x3) werden in Matrix abgelegt und nachdem sie bearbeitet und ausgegeben wurden wird ihr Inhalt mit dem nächsten Block überschrieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/533007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/533007</guid><dc:creator><![CDATA[ZeroooooO]]></dc:creator><pubDate>Fri, 04 Jun 2004 10:06:18 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Fri, 04 Jun 2004 19:15:31 GMT]]></title><description><![CDATA[<p>Das du das so gemeint hast ist schon klar, aber das hast du nicht so programmiert. Was passiert denn mit dem Index j? Du setzt ihn nicht zurück, er wird immer nur inkrementiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/533147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/533147</guid><dc:creator><![CDATA[Geo]]></dc:creator><pubDate>Fri, 04 Jun 2004 19:15:31 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Fri, 04 Jun 2004 21:18:12 GMT]]></title><description><![CDATA[<p>Ok mag sein aber wie kommen dadurch die unterschiedlichen Ergebnisse zustande ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/533238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/533238</guid><dc:creator><![CDATA[ZeroooooO]]></dc:creator><pubDate>Fri, 04 Jun 2004 21:18:12 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Sat, 05 Jun 2004 05:41:20 GMT]]></title><description><![CDATA[<p>Joe_M. schrieb:</p>
<blockquote>
<p>Wenn man sich mal ansieht was in den Canvas reingeschrieben wird:</p>
<pre><code>mit          ohne Laufzeitpackeges
0x00736E6F   0x00067463  Wert an identischer Canvasposition!
0x003A3939   0x00033A3F
</code></pre>
</blockquote>
<p>Hast Du denn mittlerweile mal versucht nachzuvollziehen, wie diese Unteschiedlichen Werte zustande kommen? Ein möglicher Weg wäre sich mal alle wichtigen Werte in eine StringList zu schreiben (jeweils mit und ohne Laufzeitpackes), auf Festplatte zu speichern und zu vergleichen. Dann hättest Du zumindest einen Anhaltspunkt, wo im Source zu suchen ist. Ach ja, ein bißchen Ordnung (Einrücken) könnte der Source wirklich vertragen, dass ist so absolut unleserlich.</p>
<p>Außerdem müchte ich noch mal auf Graphics::TBitmap-&gt;Scanline hinweisen. Auch hiermit kannst Du die einzelnen Pixel auslesen und schreiben. Das ist ca. 10 mal schneller als über Canvas[x][y].</p>
]]></description><link>https://www.c-plusplus.net/forum/post/533357</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/533357</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 05 Jun 2004 05:41:20 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Sat, 05 Jun 2004 09:26:43 GMT]]></title><description><![CDATA[<p>Hmm wie kann ich denn mir Scanline die einzelnen Pixel auslesen ? Ich dachte damit könnte man immer nur ganze Zeilen auslesen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/533420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/533420</guid><dc:creator><![CDATA[ZerooooooO]]></dc:creator><pubDate>Sat, 05 Jun 2004 09:26:43 GMT</pubDate></item><item><title><![CDATA[Reply to TCanvas::Pixels-Resultate variieren bei Standalone&#x2F;Runtimepackages-Kompilat (war: Standalone EXE Tipp aus FAQ Problem) on Sat, 05 Jun 2004 10:17:03 GMT]]></title><description><![CDATA[<p>Als Anregung:<br />
Untere Funktion verwendet Scanline um eine um 0, 90, 180 oder 270 Grad zu gedrehte Bitmap aus einem Bytearray zu erstellen. Ist aber nur nur für <strong>8 Bit</strong> Farbtiefe geeignet (Byte*, Such mal nach RGBTRIPLE in der Hilfe). Da die Dateien, die ich einlesen muß, alle DIN A4, 600 dpi-JPEGs sind, sind sie recht groß (im Arbeitsspeicher). Deswegen waren Canvas-Zugriffe viel zu langsam und ich mußte Scanline verwenden. Die Bitmap wird dazu beim Laden erst in BitmapShow gelesen und dann in ein Bytearray im Arbeitsspeicher gelegt (ausgelesen über Scanline).</p>
<p>globale Variablen:<br />
ymaxorg und xmaxorg sind int und geben die Größe des Originalbitmaps an<br />
Imagedata ist ein Array aus Byte, in der Größe des Bitmaps. Dieses Array wird, beim Öffnen der Datei, mit den Original-Bitmappixeldaten gefüllt.<br />
BitmapShow (Graphics::TBitmap) nimmt das auszugebende Bild auf<br />
bmp_rotate gibt nur an, um wieviel Grad das Bild gedreht wird.</p>
<pre><code class="language-cpp">void __fastcall TFormJPEGViewer::RotateBitmap(void)
{

	int ymaxrot;
	int xmaxrot;

	if (bmp_rotate == 2 || bmp_rotate == 0)
	{
		ymaxrot = ymaxorg;
		xmaxrot = xmaxorg;
	}
	else
	{
		ymaxrot = xmaxorg;
		xmaxrot = ymaxorg;
	}

	BitmapShow-&gt;Width = xmaxrot;
	BitmapShow-&gt;Height = ymaxrot;

	Byte* slRotated;
	pImagedata = Imagedata;

	if (bmp_rotate == 0) // 0° gedreht
	{
		for (int y = ymaxrot - 1; y &gt;= 0; y--)
		{
			slRotated = (Byte*) BitmapShow-&gt;ScanLine[y];
			for (int x = xmaxrot - 1; x &gt;= 0; x--)
			{
				*slRotated = *pImagedata;
				slRotated++;
				pImagedata++;
			}
		}
	}

	if (bmp_rotate == 2) // 180° gedreht
	{

		for (int y = 0; y &lt; ymaxrot; y++)
		{
			slRotated = (Byte*) BitmapShow-&gt;ScanLine[y];
			slRotated += xmaxrot - 1;
			for (int x = 0; x &lt; xmaxrot; x++)
			{
				*slRotated = *pImagedata;
				slRotated--;
				pImagedata++;
			}
		}
	}

if (bmp_rotate == 3) // 270° gedreht
 {
  for (int y = ymaxrot - 1; y &gt;= 0; y--)
  {
   slRotated = (Byte*) BitmapShow-&gt;ScanLine[y];
   slRotated += xmaxrot - 1;
   for (int x = 0; x &lt; xmaxrot; x++)
   {
    *slRotated = Imagedata[ymaxrot - 1 - y + (x * xmaxorg)];
    slRotated--;
   }
  }
 }

 if (bmp_rotate == 1) // 90° gedreht
 {
  for (int y = 0; y &lt; ymaxrot; y++)
  {
   slRotated = (Byte*) BitmapShow-&gt;ScanLine[y];
   for (int x = 0; x &lt; xmaxrot; x++)
   {
    *slRotated = Imagedata[y + (x * xmaxorg)];
    slRotated++;
   }
  }
 }
	bmp_rotate_old = bmp_rotate;
}
</code></pre>
<p>Schau Dir mal den Abschnitt um 0° drehen an. Dort wird aus dem im Arbeitsspeicher hinterlegten Daten das Bitmap unverändert wieder hergestellt.</p>
<pre><code class="language-cpp">*slRotated = *pImagedata
</code></pre>
<p>Hiermit wird ein Byte aus dem Array in die Scanline geschrieben. Kannst also den Werte aus *pImagedata einlesen (ersetzt das Lesen von Canvas-&gt;Pixel[x][y]) umrechnen und ín *slRotated reischreiben (ersetzt das Schreiben von Canvas-&gt;Pixel[x][y]).</p>
<p>Ich kann Dir das Testprojekt, aus dem diese Funktion stammt am Montag mal zum Download bereitstellen, oder zumailen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/533445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/533445</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 05 Jun 2004 10:17:03 GMT</pubDate></item></channel></rss>