Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Nach Bload alle farben falsch

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
braesident



Anmeldungsdatum: 15.04.2008
Beiträge: 189
Wohnort: Berlin

BeitragVerfasst am: 13.03.2012, 19:15    Titel: Nach Bload alle farben falsch Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 13.03.2012, 19:39    Titel: Re: Nach Bload alle farben falsch Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
braesident



Anmeldungsdatum: 15.04.2008
Beiträge: 189
Wohnort: Berlin

BeitragVerfasst am: 14.03.2012, 00:50    Titel: Antworten mit Zitat

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
Code:
PALETTE
.
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
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 14.03.2012, 14:05    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
braesident



Anmeldungsdatum: 15.04.2008
Beiträge: 189
Wohnort: Berlin

BeitragVerfasst am: 14.03.2012, 18:47    Titel: Antworten mit Zitat

OK das geht, zumindest mit der Grafik dafür ist der rest schwarz
egal ob PRINT, LINE oder PSET DRAW
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 14.03.2012, 19:03    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 14.03.2012, 21:09    Titel: Antworten mit Zitat

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 grinsen
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
braesident



Anmeldungsdatum: 15.04.2008
Beiträge: 189
Wohnort: Berlin

BeitragVerfasst am: 14.03.2012, 23:14    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 14.03.2012, 23:47    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 14.03.2012, 23:49    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 15.03.2012, 00:07    Titel: Antworten mit Zitat

@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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 15.03.2012, 00:23    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 15.03.2012, 11:45    Titel: Antworten mit Zitat

@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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 15.03.2012, 19:24    Titel: Antworten mit Zitat

Ah, stimmt; hätte ich vielleicht doch vorher noch einmal nachlesen sollen. lächeln
Immerhin verhält sich das Ganze ja dann doch so, wie ich es eigentlich erwartet hätte. happy
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz