Image to Include von ??? |
Mit dieser function könnt ihr [b:03f355f2ed][u:03f355f2ed]kleinere[/u:03f355f2ed][/b:03f355f2ed] Bilder in ein Include umwandeln, wie ihr seht, verwende ich dazu Plot und Getcolor etc. Sicherlich ist es nicht gerade die schnellste variante, da ich mich noch nie mit writepixelfast etc. befasst hab, sprich: wenn ihr wollt, könnt ihr ja mal den code in eure variante mit readpixelfast etc umwandeln, und hier posten! Wie ihr mit dem ganzen in euren games vorgeht: normalerweise schreibt man: [code:1:03f355f2ed] Global auto=loadimage ("car.bmp") [/code:1:03f355f2ed] jetzt wendet ihr einfach die function an, und schriebt im code: [code:1:03f355f2ed] Include "car.bb" [/code:1:03f355f2ed] also: das include heißt so, wie das image heißt! viel spaß :wink: edit: hab den code ganz vergessen *g*: [code:1:03f355f2ed] .neu Cls Locate 0,0 Global name$=Input("Welches Bild soll kreiiert werden?") Global image=LoadImage (name) If image=0 Then Gosub neu Global file$=WriteFile (Trim( (Left(name,(Instr(name,".")-1))) )+".bb") Global w=ImageWidth(image) Global h=ImageHeight(image) SetBuffer ImageBuffer(image) WriteLine file,"Global "+Trim( (Left(name,(Instr(name,".")-1))) )+" =CreateImage ( "+w+", "+h+" )" WriteLine file,"SetBuffer ImageBuffer( "+Trim( (Left(name,(Instr(name,".")-1))) )+" )" WriteLine file,"" x=-1 Repeat x=x+1 If x>w Then x=0: y=y+1 If y>h Then Exit GetColor x,y WriteLine file,"Color "+ColorRed()+", "+ColorGreen()+", "+ColorBlue() WriteLine file,"Plot "+x+", "+y WriteLine file,"" Until KeyHit(1) WriteLine file,"SetBuffer BackBuffer ()" CloseFile file FreeImage image RuntimeError "Bild wurde in der Datei "+name+".bb abgespeichert und steht als Include bereit!" [/code:1:03f355f2ed] |
von ??? |
Habe mal sowas ähnliches geschrieben, habe aber Data Zeilen mit ASCII-Code angelegt... Dein Code ist aber nicht gerade effektive, da er viel zuviel unnötige Sachen enthält. Hier mal mein Code: [code:1:10c63099f2] ; FileSaved-Includes V1.1 / Daten-Verschlüsselung-Programm von morszeck ; Bei kommerziellen Gebrauch in eigenen Programmen bitte Rückfrage an ; Fa. mmie.ch eMail: support@mmie.ch ; ;- Auslesen aller Images aus dem Verzeichnis----------------------- verzeichnis = ReadDir(CurrentDir$()) Repeat datei$ = NextFile$(verzeichnis) If Right$(datei$,3) = "jpg" Or Right$(datei$,3) = "bmp" Or Right$(datei$,3) = "png" Then Print datei$ + " as include => " + Left$(datei$, Len(datei$) - 4) + Right$(datei$, 3) + ".bb" FileSaverIncluder(datei$) EndIf Until datei$ = "" Print "Bin fertig, bitte eine Taste drücken." WaitKey() End ;- Funktion ------------------------------------------------------- Function FileSaverIncluder(datei$) r_file = ReadFile(datei$) r_size = FileSize(datei$) - 1 If Mid$(datei$, Len(datei$) - 1, 1) = "." Then point = 1 If Mid$(datei$, Len(datei$) - 2, 1) = "." Then point = 2 If Mid$(datei$, Len(datei$) - 3, 1) = "." Then point = 3 s_file_name$ = Left$(datei$, Len(datei$) - point - 1) + Right$(datei$, point) s_file = WriteFile(s_file_name$ + ".bb") ;- Schreibe Function zum einlesen der Daten ------------------------- WriteLine s_file, "Function "+ s_file_name$ +"()" WriteLine s_file, " Read file$, laenge" WriteLine s_file, " s_file = WriteFile("+Chr$(34)+"data.tmp"+Chr$(34)+")" WriteLine s_file, " While x < laenge" WriteLine s_file, " Read daten$" WriteLine s_file, " If Int(daten$)>0 Or daten$=0 Then" WriteLine s_file, " WriteByte s_file, Int(daten$)" WriteLine s_file, " x=x+1" WriteLine s_file, " Else" WriteLine s_file, " size = Len(daten$)" WriteLine s_file, " s = 1" WriteLine s_file, " While s < size+1" WriteLine s_file, " WriteByte s_file, Asc(Mid$(daten$,s,1))" WriteLine s_file, " s=s+1" WriteLine s_file, " x=x+1" WriteLine s_file, " Wend" WriteLine s_file, " EndIf" WriteLine s_file, " Wend" WriteLine s_file, " CloseFile s_file" WriteLine s_file, " bild = LoadImage("+Chr$(34)+"data.tmp"+Chr$(34)+")" WriteLine s_file, " DeleteFile "+Chr$(34)+"data.tmp"+Chr$(34) WriteLine s_file, " Return bild" WriteLine s_file, "End Function" WriteLine s_file, "" ;- Schreibe Daten --------------------------------------------------- WriteLine s_file, "Data " + Chr$(34) + datei$ + Chr$(34) + ", " + (r_size+1) t = 0 ; Kontrollzähler für Filegrösse s = 0 ; Kontrollzähler für Datenanzahl pro Zeile k = 50 ; Datenanzahl pro Data Zeile Repeat s = 0 n_line = 1 ; neue linie oder nicht f_zahl = 0 ; zahl oder nicht zahl While s < k byte = ReadByte(r_file) If byte<32 Or byte=34 Or (byte>47 And byte<58 And f_zahl=1) Or (byte>47 And byte<58 And n_line=1) Or ((byte=43 Or byte=45 Or byte=32) And f_zahl=1) Or ((byte=43 Or byte=45 Or byte=32) And n_line=1) Then If n_line = 1 Then data_line$ = byte n_line = 0 Else If f_zahl = 1 Then data_line$ = data_line$ + "," + byte Else data_line$ = data_line$ + Chr$(34) + "," + byte EndIf EndIf f_zahl = 1 kl = kl + 1 Else If n_line = 1 Then data_line$ = Chr$(34) + Chr$(byte) n_line = 0 Else If f_zahl = 1 Then data_line$ = data_line$ + "," + Chr$(34) + Chr$(byte) f_zahl = 0 Else data_line$ = data_line$ + Chr$(byte) EndIf EndIf kl = kl + 1 EndIf If t = r_size Then Exit s = s + 1 t = t + 1 Wend If f_zahl = 0 Then data_line$ = data_line$ + Chr$(34) WriteLine s_file, "Data " + data_line$ If t = r_size Then Exit Forever CloseFile r_file CloseFile s_file End Function [/code:1:10c63099f2] |
von ??? |
hier geht es ja nicht um daten-verschlüsselung: das include wird ja beim compilen in den code gesetzt, und muss nicht mehr als externe datei bestehen, is klar! ein code ist da also nicht nötig! aber was ist denn unnötig? ich hab da eh nicht viel optimiert, hab da nicht lange rumgeschrieben: in 3 min war der ganze code fertig ^^ |
von ??? |
Für grosse Bilder ist der Code ungeeignet... Naja... jedem das sein... |
von ??? |
[quote:45cfdf5e5f]Mit dieser function könnt ihr kleinere Bilder in ein Include umwandeln[/quote:45cfdf5e5f].... |