Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
braesident
Anmeldungsdatum: 15.04.2008 Beiträge: 189 Wohnort: Berlin
|
Verfasst am: 13.03.2012, 19:15 Titel: Nach Bload alle farben falsch |
|
|
Hi Leute,
folgendes Problem: Ich bin mit meinem Program im Groben fertig.
alles lief super - nun wollte ich noch eine bmp per BLOAD einfügen.
gesagt getan, doch jetzt werden alle Farben im Prog falsch dargestellt.
also in meinem Code benutze ich
Code: | SCREENRES 800,480,8,4, |
der BLOAD befehl:
Code: | Dim As Any Ptr bild
bild = ImageCreate(197, 244) 'Bildpuffer der Groesse ... anlegen
BLoad "postit.bmp", bild 'Bilddatei in den Puffer laden
PUT (10, 10), bild 'Bildpuffer auf den Bildschirm zeichnen
ImageDestroy (bild) 'Bildpuffer wieder loeschen
|
und die BMP eigenschaften:
197x244 pixel
96x96 dpi
8 bit tiefe
|
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 13.03.2012, 19:39 Titel: Re: Nach Bload alle farben falsch |
|
|
braesident hat Folgendes geschrieben: | 8 bit tiefe |
Und hier liegt der Hund begraben: Indexierte Farbpalette! => Wenn diese im heruntergerechneten .BMP eine andere als diejenige im FB-SCREEN ist, dann stimmen die Farben entsprechend nicht.
Lösung:
- Palette vom Bild auch beim FB-Screen (dort in der Regel Fenster) laden (gibt vermutlich so etwas PALETTE USING-mässiges bestimmt auch)
- .BMP-Bilder selber: Müssen alle auf derselben Farbpalette aufbauen.
Siehe ansonsten auch
http://www.dreael.ch/Deutsch/Download/WindowsBitmapBibliothek.html _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
braesident
Anmeldungsdatum: 15.04.2008 Beiträge: 189 Wohnort: Berlin
|
Verfasst am: 14.03.2012, 00:50 Titel: |
|
|
ok das ist ja nochmal schwere Kost für mich jedenfalls.
also mit deinem Link bin jetzt nicht so weit gekommen und mich nochmal auf PALETTE konzentriert.
Hab aber nur die hälfte verstanden... der für mich beste Befehl war einfach nur .
Jetzt sind zwar alle FB Farben wieder so wie gewollt, doch leider die Farben der Grafik nicht mehr.
dreael hat Folgendes geschrieben: | Lösung:
- Palette vom Bild auch beim FB-Screen (dort in der Regel Fenster) laden (gibt vermutlich so etwas PALETTE USING-mässiges bestimmt auch) |
Was meintest du mit Fenster?
Oder geht es auch andersherum - also die Farbpalette von FB in Grafikprogram zu übergeben so das z.b. ein vorhandenes Bild zwar Optisch bleibt aber die werte auf die FB Palette umgerechnet werden? |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 14.03.2012, 14:05 Titel: |
|
|
Hi,
gibt es einen zwingenden Grund Farbmod 8 zu benutzen?
Versuch doch einmal
Code: | SCREENRES 800, 480, 32 |
Damit werden 8bit BMPs farbrichtig dargestellt. _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
braesident
Anmeldungsdatum: 15.04.2008 Beiträge: 189 Wohnort: Berlin
|
Verfasst am: 14.03.2012, 18:47 Titel: |
|
|
OK das geht, zumindest mit der Grafik dafür ist der rest schwarz
egal ob PRINT, LINE oder PSET DRAW |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 14.03.2012, 19:03 Titel: |
|
|
vermutlich, weil du die Farben im Programm im Bereich von 0-15 angibst. Im 32bit-Farbmodus musst du sie dann als RGB-Farbwerte angeben. Siehe dazu auch den Referenzeintrag zu RGB / RGBA. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 14.03.2012, 21:09 Titel: |
|
|
richtig,
für die Farbangaben im 8bit Bereich (0-255) mußt du den Farbwert für 32bit umrechnen
Das kleine Programm kann dabei helfen
Code: | ScreenRes 240, 50, 8
Width 30, 3
Dim As UInteger r, g, b, i
Print "Farbmodus 8 Bit"
Input "Palettenindex: ",i 'Farbindex 0-255
Palette Get i, r, g, b
Color ,i : Cls
Print "Farbmodus 8 Bit -> 32 Bit"
Print i; " = "; RGBA(r, g, b, 0)
Sleep 3000
ScreenRes 240, 50, 32
Width 30, 3
Color ,RGB(r, g, b) : Cls
Print "Farbmodus 32 Bit"
Print "RGB(";r;",";g;",";b;")";" = ";"&h";Hex(RGB(r,g,b),6)
Sleep |
für
Code: | 'alt
COLOR 77
'....
COLOR RGB(125,222,255)
'oder
COLOR &h7DDEFF
'oder
COLOR 8249087
|
_________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Zuletzt bearbeitet von volta am 15.03.2012, 00:01, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
braesident
Anmeldungsdatum: 15.04.2008 Beiträge: 189 Wohnort: Berlin
|
Verfasst am: 14.03.2012, 23:14 Titel: |
|
|
ohh super, genau das hat noch gefehlt.
vielen vielen Dank
Kann es sein das es aber nicht in einem DRAW befehl funktioniert?
also vorher :
Code: | DRAW "BM69,68 C4 D49 NG1 R74" |
nachher so... wird aber nicht angezeigt
Code: | DRAW "BM69,68 C&h00AAAA D49 NG1 R74" |
|
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 14.03.2012, 23:47 Titel: |
|
|
ja,
bei DRAW kannst du nur Dezimalzahlen benutzen ( &h00AAAA = 43690) _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 14.03.2012, 23:49 Titel: |
|
|
DRAW arbeitet trotzdem mit indizierten Farben - C4 funktioniert offenbar nach wie vor. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 15.03.2012, 00:07 Titel: |
|
|
@nemored leider nicht bei 32bit farbenscreen
Code: | Screen 18,8
Draw "BM69,68 C4 D49 NG1 R74"
sleep |
Code: | Screen 18,32
Draw "BM69,68 C11141120 D49 NG1 R74"
sleep |
_________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 15.03.2012, 00:23 Titel: |
|
|
Das ist kurios - ich habe SCREEN 12, 32 genommen, da klappt es ...
Da ich aber eigentlich sowieso SCREENRES den Vorzug gebe: dort hat Volta auf jeden Fall recht. Was dann auch geht ist
Code: | DRAW "BM69,68 C" & &h00AAAA & "D49 NG1 R74" |
_________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 15.03.2012, 11:45 Titel: |
|
|
@nemored,
du kannst dem Screen 12 keine 32bit-Farben aufzwingen.
Es können nur 16 Farben dargestellt werden, darum funktioniert "C4". _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 15.03.2012, 19:24 Titel: |
|
|
Ah, stimmt; hätte ich vielleicht doch vorher noch einmal nachlesen sollen.
Immerhin verhält sich das Ganze ja dann doch so, wie ich es eigentlich erwartet hätte.  _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
|