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:

PSET in ASM???
Gehe zu Seite Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 10.02.2007, 19:35    Titel: Antworten mit Zitat

A.K. hat Folgendes geschrieben:
Jojo hat Folgendes geschrieben:
csderats hat Folgendes geschrieben:
8-bit BMP Datei


8 Bit sind immer 256 farben zwinkern


grins, schön wenn es so wäre....happy

Auch ein 8-Bit-Bmp hat nicht immer 256 Farben! zwinkern

MFG A.K.


Also KEINE Bitmap-Datei in version 3 mit 8bit hat mit diesem tool bisher NICHT funktioniert...
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 10.02.2007, 21:35    Titel: Antworten mit Zitat

Bei 8-bit geht die palette bis zum 1024 Byte?
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 10.02.2007, 22:06    Titel: Antworten mit Zitat

joa, so ungefähr. ich würde mich aber nicht drauf verlassen. entweder war meine bmp-laderoutine falsch, oder aber der header ist variabel. ich glaube, die geht bis 1078, aber ich kann ich täsuchen...
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 10.02.2007, 22:10    Titel: Antworten mit Zitat

ne es fehlte nur das Dim byte as string * 1 happy. Inner qbmonfaq gibts den bmp-loader von dem das is happy. Ich habs nach geschaut und es geht bis zum 1024 Byte lächeln. die in andere datei auslagern => mit dem Alg wieder laden grinsen
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 10.02.2007, 22:21    Titel: Antworten mit Zitat

ja, den hatte ich damals von qbasci.de....
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 10.02.2007, 22:52    Titel: Antworten mit Zitat

Könnte man nicht auch von &H3C8 - &H3C9 einen Speicherabzug mit BSAVE machen, den dann zuerst laden und dann den Speicherabzug des Bildes?
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 10.02.2007, 22:55    Titel: Antworten mit Zitat

"Speicherabzug" gibt's nicht wriklich, weil das keine speicheradressen sind, sondern kommandos. Wenn du die palette einlesen willst, geht's aber ähnlich:

Code:

for p = 0 to 255
  out &H3c7, P
  R = Inp(&h3c9)
  G = Inp(&h3c9)
  B = Inp(&h3c9)
next


Nein, ich habe mich nicht verschrieben. Um die palette einzulesen, musst du auf den port 0x3c7, nicht 0x3c8 zugreifen.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 10.02.2007, 23:08    Titel: Antworten mit Zitat

Achso! Wenn man der Graka an die &H3C8 eine Zahl hinschreibt dann "holt" sich die Graka die RGB-Werte von &H3C9 ? Und wenn man der Graka &H3C7 eine Zehl hinschreibt "bringt" sie einen die RGB-Werte an &H3C8?? Ahhh verstehe happy

/edit:
ich hab nochmal nachgedacht und bin zu folgendem gekommen (was leider nicht ganz funtkioniert neutral ):

Code für .PAL Erstellung:
Code:

DEFINT A-Z

DIM byte AS STRING * 1
DIM xsz AS LONG 'x-Size
DIM ysz AS LONG 'y-Size

SCREEN 13
n = 0
DO
  n = n + 1
  IF n = 600 THEN EXIT DO
 
  FileName$ = "videos\i" + LTRIM$(RTRIM$(STR$(n))) + ".bmp"
  PalFile$ = "videos\i" + LTRIM$(RTRIM$(STR$(n))) + ".pal"
 
  OPEN FileName$ FOR BINARY AS #1
  OPEN PalFile$ FOR BINARY AS #2
 
  GET #1, 1, ftype
  GET #1, 29, bits
  GET #1, 19, xsz
  GET #1, 23, ysz
 
  FOR attr = 0 TO 255
   OUT &H3C8, attr
   FOR rgb = 1 TO 3
    GET #1, attr * 4 + 58 - rgb, byte
    OUT &H3C9, INT(ASC(byte) * .2471)
   NEXT rgb
  NEXT attr

  position& = SEEK(1)

  puffer$ = SPACE$(position&)
  GET #1, 1, puffer$
  PUT #2, , puffer$

  CLOSE #1
  CLOSE #2

LOOP


Und für's Anzeigen (hier mangelt es irgendwie an Qualität (Viele Pixelfehler)):

Code:

KEY(1) ON
ON KEY(1) GOSUB ende

DIM byte AS STRING * 1
DIM xsz AS LONG
DIM ysz AS LONG
DIM bits AS LONG

DEFINT A-Z
SCREEN 13
DEF SEG = &HA000


FOR tgfs = 1 TO 600
 PalFile$ = "videos\i" + LTRIM$(RTRIM$(STR$(tgfs))) + ".pal"
 FileName$ = "videos\i" + LTRIM$(RTRIM$(STR$(tgfs))) + ".bsv"

 OPEN PalFile$ FOR BINARY ACCESS READ AS #1
  GET #1, 1, ftype
  GET #1, 29, bits
  GET #1, 19, xsz
  GET #1, 23, ysz

  FOR attr = 0 TO 255
   OUT &H3C8, attr
   FOR rgb = 1 TO 3
    GET #1, attr * 4 + 58 - rgb, byte
    OUT &H3C9, INT(ASC(byte) * .2471)
   NEXT rgb
  NEXT attr
 CLOSE #1

 BLOAD FileName$, 0
 
NEXT tgfs

ende:
'CLS
DEF SEG
END

_________________
If hilfreicher_Beitrag then klick(location.here)

Klick


Zuletzt bearbeitet von csde_rats am 11.02.2007, 13:31, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

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

also ne pal-datei baute ich so auf:

Code:

dim tbyte as string*1
dim buffer as string
open "palette.pal" for binary as #1
for p = 0 to 255
  out &h3c7, p
  for rgb = 1 to 3
    tbyte = chr(inp(&h3c9))
    buffer = buffer + tbyte
  next
next
put #1,,buffer
close #1


und dann auslesen aufm selben weg happy
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 10.02.2007, 23:50    Titel: Antworten mit Zitat

Danke! das test ich gleich ma ... happy

/edit:
Erstellen bereits getestet:
1. Änderung "CHR$" statt "CHR" zwinkern
Dann funzte das erstellen fehlerfrei. Lesen schaue ich gleich ma ... lächeln

/edit2:
Yahooo!!!! Yahooo!!!! Yahooo!!!! Hammer

Es funzt - und zwar alles vor Freude klatschen

Danke Jojo happy happy

Ist nur langsam - aber sowas kann man leicht beheben (200 paldateien im hintergrund laden grinsen)

/edit3:
Noch schnell den Code happy :
Code:

KEY(1) ON
ON KEY(1) GOSUB ende
ON ERROR GOTO fehler


DEFINT A-Z
DIM byte AS STRING * 1
DIM xsz AS LONG 'x-Size
DIM ysz AS LONG 'y-Size
DIM tbyte AS STRING * 1
DIM buffer AS STRING

SCREEN 13

DEF SEG = &HA000

FOR n = 1 TO 600
 PalFile$ = "videos\i" + LTRIM$(RTRIM$(STR$(n))) + ".pal"

OPEN PalFile$ FOR BINARY AS #1

FOR p = 0 TO 255
  OUT &H3C8, p
  FOR rgb = 1 TO 3
    GET #1, , tbyte$
    OUT &H3C9, INT(ASC(tbyte$) * .2471)
  NEXT
NEXT
PUT #1, , buffer$

CLOSE #1

  FileName$ = "videos\i" + LTRIM$(RTRIM$(STR$(n))) + ".bsv"
  CALL xsleep(1)
  BLOAD FileName$, 0

NEXT n


ende:
'CLS
DEF SEG
END


fehler:
RESUME NEXT

_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
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