 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 10.02.2007, 19:35 Titel: |
|
|
A.K. hat Folgendes geschrieben: | Jojo hat Folgendes geschrieben: | csderats hat Folgendes geschrieben: | 8-bit BMP Datei |
8 Bit sind immer 256 farben  |
grins, schön wenn es so wäre....
Auch ein 8-Bit-Bmp hat nicht immer 256 Farben!
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 |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 10.02.2007, 22:06 Titel: |
|
|
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 |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 10.02.2007, 22:10 Titel: |
|
|
ne es fehlte nur das Dim byte as string * 1 . Inner qbmonfaq gibts den bmp-loader von dem das is . Ich habs nach geschaut und es geht bis zum 1024 Byte . die in andere datei auslagern => mit dem Alg wieder laden  _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 10.02.2007, 22:21 Titel: |
|
|
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 |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 10.02.2007, 22:55 Titel: |
|
|
"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 |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 10.02.2007, 23:08 Titel: |
|
|
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
/edit:
ich hab nochmal nachgedacht und bin zu folgendem gekommen (was leider nicht ganz funtkioniert ):
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 |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 10.02.2007, 23:49 Titel: |
|
|
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  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 10.02.2007, 23:50 Titel: |
|
|
Danke! das test ich gleich ma ...
/edit:
Erstellen bereits getestet:
1. Änderung "CHR$" statt "CHR"
Dann funzte das erstellen fehlerfrei. Lesen schaue ich gleich ma ...
/edit2:
Es funzt - und zwar alles
Danke Jojo
Ist nur langsam - aber sowas kann man leicht beheben (200 paldateien im hintergrund laden )
/edit3:
Noch schnell den Code :
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 |
|
 |
|
|
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.
|
|