Wie kann ich Bilder speichern?
Übersicht

![]() |
Sir DanBetreff: Wie kann ich Bilder speichern? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
Ich wollte einmal wissen, ob/wie ich Bilder in einer Datei (.map) speichern kann? Und wenn es geht zusammen mit ein paar Variablen. Ich danke schon im voraus für die Antworten ![]() |
||
lettorTrepuS |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger. | ||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Um ein Bild zu speichern kannst Du einfach SaveBuffer (also SaveBuffer(ForntBuffer(),"tolles_bild.map") oder SaveImage verwenden, je nach Bedarf. Wenn Du noch weitere Werte drin speichern willst wirds schon komplizierter. Dazu würd ich die Größe des Bildes (ImageWidth() und ImageHeight() ) an den Anfang der Datei speichern und mit Hilfe dieser Werte zwei For-Schleifen beauftragen Readpixel() und WriteInt() auszuführen. Nach den Schleifen einfach die noch benötigten Werte dranhängen -> fertig ![]() Sehr viel einfacher ist es allerdings einfach das Bild normal zu speichern und die Werte in einer extra Datei ablegen ![]() Edit: Schade, da war einer schneller ![]() ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Sir Dan |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier ist der code :
Code: [AUSKLAPPEN] For x = 0 To 640
For y = 0 To 640 GetColor(x,y) r%=ColorRed() g%=ColorGreen() b%=ColorBlue() speicher_r(x,y) = r% speicher_g(x,y) = g% speicher_b(x,y) = b% Next Next save$ = Input("Name der Datei : ") karten_datei = WriteFile("data/" + save$ + ".map" For x = 0 To 640 For y = 0 To 640 WriteInt(karten_datei,speicher_r(x,y)) WriteInt(karten_datei,speicher_g(x,y)) WriteInt(karten_datei,speicher_b(x,y)) Next Next CloseFile karten_datei Ich dachte er würde so funktionieren, aber wenn ich diese ´.map´ datei lade und auf dem Bildschirm ausgeben will kommt der Fehler ´Array index out of bounds´ (oder so ähnlich) edit: Wie mache ich das der Code als Code und nicht als Text angezeigt wird? edit2: So ich habe einmal den Code deutlicher hervorgehoben |
||
- Zuletzt bearbeitet von Sir Dan am Fr, März 04, 2005 16:50, insgesamt einmal bearbeitet
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich denke, du hast etwas falsch verstanden, so erstellst dein EIGENES Bildformat, das kannst du nicht mit LoadImage öffnen... du mussst selbst eine Öffnungsfunktion schreiben....
Ansonsten kannst du mit SaveBuffer(BackBuffer(),DerinDatei.bmp) dein Bild NORMAL abspeichern (das heisst, du kannst es dann mit LoadImage öffnen...) // editCode: [AUSKLAPPEN] [code][/code]
BB_Code geht nicht mehr/noch nicht Ansonsten zeig mal dein lade-code, ich glaube, du hast es schon richtig gemacht (Hab nicht alles gelesen ![]() ![]() |
||
![]() |
Sir Dan |
![]() Antworten mit Zitat ![]() |
---|---|---|
@simi
ich habe ja auch erst mit einer For Next Schleife die Werte wieder ausgelesen aus der .map datei. Und dann wieder Pixel für Pixel in ein leeres Bild (CreateImage Befehl) gemalt. Aber dann kommt wie gesagt der Fehler.(siehe oben) Trotzdem danke Für die Antwort ![]() edit: Den Code habe ich in den weiten meines Rechners verschlampt ![]() ![]() ![]() Ich werde ihn nocheinmal neu schreiben bzw einmal suchen. Das kann etwas dauern ![]() |
||
- Zuletzt bearbeitet von Sir Dan am Fr, März 04, 2005 16:12, insgesamt einmal bearbeitet
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
benutz code anstatt bb-code. der ist defekt derzeit. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Sir Dan |
![]() Antworten mit Zitat ![]() |
---|---|---|
Endlich habe ich den Lade code gefunden
Code: [AUSKLAPPEN] loadname$ = Input("Name der Datei : ")
read_datei = ReadFile("data/" + loadname$ + ".map") For x = 0 To 640 For y = 0 To 640 speicher_r(x,y) = ReadInt(read_datei) speicher_g(x,y) = ReadInt(read_datei) speicher_b(x,y) = ReadInt(read_datei) Next Next bild = CreateImage(640,640) For x = 0 To 640 For y = 0 To 640 Color speicher_r(x,y),speicher_g(x,y),speicher_b(x,y) Plot x,y Next Next CloseFile read_datei Wo könnte da ein Fehler sein? |
||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Zeichmal den ganzen Code! Übrigens bringt es dir nur Nachteile, wenn du die Farbkomponenten als Integer speicherst! Die Datei wird dann nämlich viel zu groß! [Edit] (Sehr langsames ![]() Code: [AUSKLAPPEN] Graphics 640, 480, 32 Color 255, 0, 0 Oval 0, 0, 150, 150 Color 0, 255, 0 Line 639, 0, 639, 480 file = WriteFile( "test.map" ) For x = 0 To 639 For y = 0 To 479 GetColor( x, y ) WriteByte( file, ColorRed() ) WriteByte( file, ColorGreen() ) WriteByte( file, ColorBlue() ) Next Next CloseFile( file ) Code: [AUSKLAPPEN] Graphics 640, 480, 32 file = ReadFile( "test.map" ) For x = 0 To 639 For y = 0 To 479 r = ReadByte( file ) g = ReadByte( file ) b = ReadByte( file ) Color( r, g, b ) Plot( x, y ) Next Next CloseFile( file ) grüße |
||
![]() |
Sir Dan |
![]() Antworten mit Zitat ![]() |
---|---|---|
also hier ist der komplette code(aber es sind zwei verschiedene Programme)
Code: [AUSKLAPPEN] ;speicher-programm graphics 800,640 dim speicher_r(640,640) dim speicher_g(640,640) dim speicher_b(640,640) ; an dieser stelle lade/male die Bilder auf den bildschirm die du ;zusammen speichern willst For x = 0 To 640 For y = 0 To 640 GetColor(x,y) r%=ColorRed() g%=ColorGreen() b%=ColorBlue() speicher_r(x,y) = r% speicher_g(x,y) = g% speicher_b(x,y) = b% Next Next save$ = Input("Name der Datei : ") karten_datei = WriteFile("data/" + save$ + ".map" For x = 0 To 640 For y = 0 To 640 WriteInt(karten_datei,speicher_r(x,y)) WriteInt(karten_datei,speicher_g(x,y)) WriteInt(karten_datei,speicher_b(x,y)) Next Next CloseFile karten_datei end ;----------------------------------------------------------------------------------- ; Lade-programm graphics 800,640 dim speicher_r(640,640) dim speicher_g(640,640) dim speicher_b(640,640) loadname$ = Input("Name der Datei : ") read_datei = ReadFile("data/" + loadname$ + ".map") For x = 0 To 640 For y = 0 To 640 speicher_r(x,y) = ReadInt(read_datei) speicher_g(x,y) = ReadInt(read_datei) speicher_b(x,y) = ReadInt(read_datei) Next Next bild = CreateImage(640,640) For x = 0 To 640 For y = 0 To 640 Color speicher_r(x,y),speicher_g(x,y),speicher_b(x,y) Plot x,y Next Next CloseFile read_datei delay 5000 end So da ist der Komplette Code der zwei Programme. Wo ist der Fehler ![]() |
||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Beide Codes funktionieren bei mir ohne Fehler, weis nicht was dein Problem ist... Aber nimm zum Speichern bitte wirklich nur ein Byte pro Farbkomponente. Deine Version verbraucht nämlich rund 4,7 MB. Wenn du statt Integern Bytes nimmst brauchst "nurnoch" 1,17 MB. grüße |
||
![]() |
Sir Dan |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ David
Danke für den Tip ![]() Ich habe den Fehler gefunden Bei einer For Next Schleife hatte ich aus versehen ´6400´ statt ´640´ geschrieben. ![]() ![]() ![]() ![]() ![]() Nun zu meiner neuen Frage: Wie kann ich die geschwindigkeit (m)eines Programmes feststellen bzw was Für Systemresourcen (Arbeitsspeicher,usw..) ich benötige. Ich frage weil ich einen Freund habe der einen älteren PC hat auf dem nicht alles läuft.(Er ist mein Versuchsobjekt ![]() Oder laufen alle Programme auf dem PC, auf dem auch BB läuft? |
||
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Was sinnig ist, um ein BB Spiel laufen zu lassen, ist eine DX7 kompatible Grafikkarte und installiertem DX min. Version 7(??). Ansonsten dürften die Programme auch auf langsameren Rechnern (400 MHz etc...) ganz gut laufen. 64 MB Ram sollten auch genügen, besser 126 oder mehr. Ich kann jetzt nur raten, aber sollte schon so ungefähr stimmen. grüße |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group