Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Degolino
Anmeldungsdatum: 19.07.2006 Beiträge: 48
|
Verfasst am: 06.01.2007, 12:23 Titel: Bild |
|
|
Wie can ich ein Bild einlaben das mehr als 16 Farben hat????? |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 06.01.2007, 12:30 Titel: |
|
|
Forensuche.
Monster-FAQ.
Entweder in SCREEN 13 switchen (aber maximale Auflösung von 320x200), der 256 Farben unterstützt, oder auf SVGA zurückgreifen.
Entweder mittels eigener Funktionen, oder mittels einer Lib, zum Beispiel der AK-Lib (-> Forensuche, oder http://www.iconsoft.de). _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 06.01.2007, 15:07 Titel: |
|
|
Hallo
Mal wieder eine gute Gelegenheit, meine 256-Farben-BMP-Laderoutine zu posten...
Code: | SCREEN 13: CLS
DIM byte AS STRING * 1
OPEN "bild.bmp" FOR BINARY AS #1
GET #1, 19, br&
GET #1, 23, ho&
FOR f = 0 TO 255
OUT 968, f
FOR rgb = 0 TO 2
GET #1, 57 + f * 4 - rgb, byte
OUT 969, FIX(ASC(byte) / 4)
NEXT: NEXT
normbr = 4 * FIX((br& + 3) / 4)
FOR x = 0 TO br& - 1
FOR y = 0 TO ho& - 1
GET #1, x + y * normbr + 1079, byte
PSET (x, (ho& - 1) - y), ASC(byte)
NEXT: NEXT
CLOSE #1 |
Funktioniert aber nur für BMPs mit 256 Farben.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 06.01.2007, 22:57 Titel: |
|
|
wow, ziemlich klein, der loader  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 07.01.2007, 01:03 Titel: |
|
|
Ja, ist zwar etwas unflexibel, aber ich habe versucht, ihn mit meinen beschränkten Fähigkeiten auf Kompaktheit zu optimieren. _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 07.01.2007, 01:42 Titel: |
|
|
Meine standard-bmp-routine (als ich qb noch nutzte) war etwas mehr als doppelt so lange. dafür war das nicht so c++ style code  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 07.01.2007, 12:05 Titel: |
|
|
Was bitte ist daran C++-Style?!  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 07.01.2007, 12:52 Titel: |
|
|
Jojo hat Folgendes geschrieben: | Meine standard-bmp-routine (als ich qb noch nutzte) war etwas mehr als doppelt so lange. dafür war das nicht so c++ style code  |
C++ Style wäre imho, wenn in dem Codestück 100 geschweifte Klammern und 50 Sonderzeichen, die man in QB/FB mit "Worten" ausdrücken könnte, enthalten wären.
Code: | // Ausschnitt aus dem 7zip Source
// http://sevenzip.sourceforge.net
UInt32 CEncoder::ReadRleBlock(Byte *buffer)
{
UInt32 i = 0;
Byte prevByte;
if (m_InStream.ReadByte(prevByte))
{
UInt32 blockSize = m_BlockSizeMult * kBlockSizeStep - 1;
int numReps = 1;
buffer[i++] = prevByte;
while (i < blockSize) // "- 1" to support RLE
{
Byte b;
if (!m_InStream.ReadByte(b))
break;
if (b != prevByte)
{
if (numReps >= kRleModeRepSize)
buffer[i++] = numReps - kRleModeRepSize;
buffer[i++] = b;
numReps = 1;
prevByte = b;
continue;
}
numReps++;
if (numReps <= kRleModeRepSize)
buffer[i++] = b;
else if (numReps == kRleModeRepSize + 255)
{
buffer[i++] = numReps - kRleModeRepSize;
numReps = 0;
}
}
// it's to support original BZip2 decoder
if (numReps >= kRleModeRepSize)
buffer[i++] = numReps - kRleModeRepSize;
}
return i;
}
void CEncoder::WriteBits2(UInt32 value, UInt32 numBits)
{ m_OutStreamCurrent->WriteBits(value, numBits); }
void CEncoder::WriteByte2(Byte b) { WriteBits2(b , 8); }
void CEncoder::WriteBit2(bool v) { WriteBits2((v ? 1 : 0), 1); }
void CEncoder::WriteCRC2(UInt32 v)
{
for (int i = 0; i < 4; i++)
WriteByte2(((Byte)(v >> (24 - i * 8))));
}
void CEncoder::WriteBits(UInt32 value, UInt32 numBits)
{ m_OutStream.WriteBits(value, numBits); }
void CEncoder::WriteByte(Byte b) { WriteBits(b , 8); }
void CEncoder::WriteBit(bool v) { WriteBits((v ? 1 : 0), 1); }
void CEncoder::WriteCRC(UInt32 v)
{
for (int i = 0; i < 4; i++)
WriteByte(((Byte)(v >> (24 - i * 8))));
} |
Jaja, ich weiß, ich bin ja bloß ahnungslos...  _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 07.01.2007, 13:47 Titel: |
|
|
Genau. *zwinker-zwinker*
Nein, aber genauso, wie man auch BASIC gelernt hat, kann man sich auch an C(++) gewöhnen. Ich empfinde es eher als seltsam, solche Sachen in Wörter auszudrücken...  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 07.01.2007, 16:17 Titel: |
|
|
Naja, er hat ja z.B. so was wie NEXT:NEXT geschrieben, also auch keine einrückungen udn so  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 07.01.2007, 16:18 Titel: |
|
|
Wär sagt, dass man bei C(++) nicht einrückt?!  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 07.01.2007, 16:37 Titel: |
|
|
Jojo hat Folgendes geschrieben: | Naja, er hat ja z.B. so was wie NEXT:NEXT geschrieben, also auch keine einrückungen udn so  |
Ich würde selbst auch sagen, dass das eher schlampig ist als C++-mässig...
Es verblüfft mich übrigens immer wieder, wie ihr auch in kürzeste Beiträge noch mindestens ein Smilie einbaut.  _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
croco97

Anmeldungsdatum: 04.11.2005 Beiträge: 260
|
Verfasst am: 07.01.2007, 17:24 Titel: |
|
|
Er meinte wahrscheinlich "C-mässig", nicht "C++-mässig". In C waren in den 80er-Jahren solche Sachen hipp:
Code: |
for(j>20?i=min(x,y):i=0;slen=strlen(s),slen<20;i++,j=i*2) strcat(s,"xy")
|
Das ist ne for-Schleife, bei der in der Initialisierung, Bedingungsprüfung und Inkrementierung noch alles mögliche mitgeschleift wird. (Der Code ist übrigens sinnlos )
In die Richtung geht der optimierte Loader, da stimme ich zu. Aber er ist halt auch optimiert
Grüsse!
Croco |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 07.01.2007, 17:36 Titel: |
|
|
Ja, dann eben eher C-Style  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 07.01.2007, 17:55 Titel: |
|
|
Wenn man die damalige Rechnerarchitektur bedenkt...
Aber heute ist Performance nur noch ein Randgebiet für absolute High-End-Anwendungen bzw. Forschungen/Wissenschaft.
Und selbst in diesen Gebieten wird auf gut struktuierten und leserlichen Code Wert gelegt.
Ich weiß nicht, warum so viele Leute ein so verzerrtes Bild von einem C(++)-Programmierer haben...  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 07.01.2007, 20:13 Titel: |
|
|
Ich weiss wieso ich so über C++ denke
In der Berufsschule verwenden wir
C++-Programmierung lernen von André Willms.
Das Totschweige von Else IF, diversen Rechtschreibfehlern und ähnlichem hat es mein Bild von C++ mit geprägt
Wobei einige Sachen sind Unsinn und Typisch C++.
z.B. Das es Standardmässig keine "Idoten Sicherung" gibt, die Überläufe verhindert.
Oder geliebte Konstrukte wie
Code: | int i=0;
cout << ++--i++++
<< ++i--
<< i; |
Oder mein Liebling:
Code: | int a=0, b=0;
if ((a++==1&&b++==1)) |
Ratet mal welchen Wert a und b am Schluss haben. _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 07.01.2007, 20:22 Titel: |
|
|
logisch sollte ja sein jeweils 1... und was hat's? _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 08.01.2007, 20:29 Titel: |
|
|
Jojo hat Folgendes geschrieben: | logisch sollte ja sein jeweils 1... und was hat's? |
(Compiler wegwerfen, äh ich mein anwerfen)
Code: | #include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int a=0, b=0;
if (a++==1&&b++==1);
cout << a
<< "\n"
<< b
<< "\n";
system("PAUSE");
} |
So, und nun ein Crash Kurs wieso C++ Mist ist.
Code: | if (a++==1&&b++==1); |
Zerlegen wir mal:
Zuerst kommt
was aus
besteht.
a==1 ist falsch, weil a=0 ist gemäss Initalisierung.
Bleibt noch das a++, also ist nun a=1.
Wie gesagt, a==1 war vorher falsch, folglich (das ist eben Typisch C++) prüft C++ die nächsten Bedingungen nicht mehr und führt folglich das b++ nicht aus und folglich ist b immer noch 0. _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
|