Writepixelfast

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Sir Dan

Betreff: Writepixelfast

BeitragDo, Apr 28, 2005 18:49
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo,

BlitzBasic: [AUSKLAPPEN]
Function createpic(pic_name$,picsave$)
stream = WriteFile(\"data\\"+picsave$+\".slu\")
bild = LoadImage(\"data\\"+pic_name$+\".bmp\")
hoehe = ImageHeight(bild)
breite = ImageWidth(bild)
Cls
DrawImage bild,0,0
Flip
LockBuffer FrontBuffer()
WriteInt(stream,hoehe)
WriteInt(stream,breite)
For y = 0 To hoehe
For x = 0 To breite
rgb(x,y) = ReadPixelFast(x,y)
WriteLine(stream,rgb(x,y))
Next
Next
UnlockBuffer FrontBuffer()
CloseFile (stream)
End Function


Das ist meine Function zum umwandeln der bilder in mein format

BlitzBasic: [AUSKLAPPEN]
Function loadpic(picname$)
stream = ReadFile(\"data\\"+picname$+\".slu\")
hoehe = ReadInt(stream)
breite = ReadInt(stream)
bild = CreateImage(breite,hoehe)
SetBuffer ImageBuffer(bild)
LockBuffer ImageBuffer(bild)
For y = 0 To hoehe
For x = 0 To breite
rgb(x,y) = ReadLine(stream)
WritePixelFast(x,y,rgb(x,y))
Next
Next
UnlockBuffer ImageBuffer(bild)
CloseFile (stream)
Return bild
End Function


und das die function zum auslesen.
BlitzBasic: [AUSKLAPPEN]

Graphics 1024,768
SetBuffer BackBuffer()
Dim rgb(1024,768)
Global background = loadpic(\"speech\")
DrawImage background,0,0
WaitKey
End

Jetzt zu meinem Prob:
aus irgend einem Grund kann dieses Prog. nur
gleich hohe/lange Bilder laden und anzeigen. Und diese wenigen sind dann auch nur als roter Farbverlauf zu sehen. Warum?
Ich wollte einmal mit diesen Farbcodes rumexperimentieren, dswegen bitte ich es zu entschuldigen, wenn es ein zu dämlicher Fehler ist. Very Happy
Danke!
(\_/)
(O.o)
(> <) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.

simi

BeitragDo, Apr 28, 2005 18:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Also,

1. Wenn ein Bild zB 10 Pixel hoch ist, dann hat es Pixel von 0 - 9 ....
2. Warum benutzt du WriteInt und WriteLine in der gelichen Datei.... Mach doch alles mit WriteInt ....

Sir Dan

BeitragDo, Apr 28, 2005 19:18
Antworten mit Zitat
Benutzer-Profile anzeigen
das mit writeint habe ich schon, hatte aus versehen die alte version Embarassed
und zu 1. Das erklärt aber nicht, warum nur ein roter Farbverlauf zu sehen ist
trotzdem danke
(\_/)
(O.o)
(> <) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.

Sir Dan

BeitragDo, Apr 28, 2005 20:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Hat denn keiner einen fehler entdeckt? Ich verzweifle noch daran Crying or Very sad Crying or Very sad Crying or Very sad
Bitte helfen!!!
(\_/)
(O.o)
(> <) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.

D2006

Administrator

BeitragDo, Apr 28, 2005 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

kann mir den roten Farbverlauf auf den ersten Blick jetzt nicht erklären.

Allerdings fiel mir auf, dass du beim Speichern des Bildes den Frontbuffer lockst, obwohl das Bild auf dem Backbuffer gezeichnet wurde.

MfG
D2006

PS: Doppelposts die nur eine (jämmerliche) Verzweiflung ausdrücken nerven!
 

Dreamora

BeitragDo, Apr 28, 2005 20:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast du es mit der fehlerfreien Version überhaupt schon versucht?

Poste mal deine aktuelle Version rein, nicht eine veraltete bei der wir 2 elementare Fehler aufgezeigt haben.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Sir Dan

BeitragDo, Apr 28, 2005 20:25
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]

Graphics 1024,768
SetBuffer BackBuffer()
Dim rgb(1024,768)
Global background = loadpic(\"speech\")
DrawImage background,0,0
WaitKey
End

Function createpic(pic_name$,picsave$)
stream = WriteFile(\"data\\"+picsave$+\".slu\")
bild = LoadImage(\"data\\"+pic_name$+\".bmp\")
hoehe = ImageHeight(bild)
breite = ImageWidth(bild)
Cls
DrawImage bild,0,0
Flip
LockBuffer BackBuffer()
WriteInt(stream,hoehe)
WriteInt(stream,breite)
For y = 0 To hoehe - 1
For x = 0 To breite - 1
rgb(x,y) = ReadPixelFast(x,y)
WriteInt(stream,rgb(x,y))
Next
Next
UnlockBuffer BackBuffer()
CloseFile (stream)
End Function

Function loadpic(picname$)
stream = ReadFile(\"data\\"+picname$+\".slu\")
hoehe = ReadInt(stream)
breite = ReadInt(stream)
bild = CreateImage(breite,hoehe)
SetBuffer ImageBuffer(bild)
LockBuffer ImageBuffer(bild)
For y = 0 To hoehe - 1
For x = 0 To breite - 1
rgb(x,y) = ReadInt(stream)
WritePixelFast(x,y,rgb(x,y))
Next
Next
UnlockBuffer ImageBuffer(bild)
CloseFile (stream)
Return bild
End Function


@ D2006
Zitat:
PS: Doppelposts die nur eine (jämmerliche) Verzweiflung ausdrücken nerven!


OK, ich höre auf damit, aber ich bin halt am verzweifeln!!![/syntax]
(\_/)
(O.o)
(> <) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDo, Apr 28, 2005 20:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Habs gerade getestet mit einem JPG Bild .... und es geht!!!
[BB2D | BB3D | BB+]

Sir Dan

BeitragDo, Apr 28, 2005 21:05
Antworten mit Zitat
Benutzer-Profile anzeigen
http://members.fortunecity.de/sirdan/test.bmp
Orginal Bild
http://members.fortunecity.de/sirdan/test2.bmp
Bild nachhe
(vorsicht beim öffnen , *.bmp datei Very Happy )

P.S.: Url kopieren und in adressleiste einfügen

EDIT: Problem hat sich erledigt. Hab einfach den PC neu gestartet und es ging. Warum hab ich keine Ahnung, aber auf jeden Fall vielen dank!
(\_/)
(O.o)
(> <) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDo, Apr 28, 2005 21:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir läufts... Very Happy BlitzBasic: [AUSKLAPPEN]
Graphics 1024 ,768
SetBuffer BackBuffer ()
Dim rgb (1024 ,768)
createpic (\"test\",\"IM000020\")
Global background = loadpic (\"IM000020\")

SetBuffer BackBuffer ();<<<< wieder auf den richtigen Buffer stellen
While Not KeyDown(1);
DrawImage background ,20,20
Flip:Cls:Wend:End ;

Function createpic (pic_name$,picsave$)
stream = WriteFile (\"data\\" + picsave$ + \".slu\")
bild = LoadImage (\"data\\" + pic_name$+\".bmp\")
hoehe = ImageHeight (bild)
breite = ImageWidth (bild)
Cls
DrawImage bild,0,0
Flip
LockBuffer BackBuffer ()
WriteInt (stream,hoehe)
WriteInt (stream,breite)

For y = 0 To hoehe - 1
For x = 0 To breite - 1
rgb (x,y) = ReadPixelFast (x,y)
WriteInt (stream,rgb (x,y) )
Next

Next

UnlockBuffer BackBuffer ()
CloseFile (stream)
FreeImage bild ; <<<<<<<<<<<<<<<< das geladene löschen
End Function

Function loadpic (picname$)
stream = ReadFile (\"data\\" + picname$ + \".slu\")
hoehe = ReadInt (stream)
breite = ReadInt (stream)
bild = CreateImage (breite,hoehe)
SetBuffer ImageBuffer (bild)
LockBuffer ImageBuffer (bild)

For y = 0 To hoehe - 1

For x = 0 To breite - 1
rgb (x,y) = ReadInt (stream)
WritePixelFast (x,y,rgb (x,y) )
Next

Next

UnlockBuffer ImageBuffer (bild)
CloseFile (stream)
Return bild
End Function


Getestet mit BlitzPlus 2d und 3d
[BB2D | BB3D | BB+]

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group