Bilder "verstecken"!
Übersicht

![]() |
IronstormErstklassiger Contest-VeranstalterBetreff: Bilder "verstecken"! |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi @ all!
Schonmal vorab Happy New Year ![]() |
||
..:: blackbird design : blackbird photography : Futuro Verde : X-Commander ::..
MacBook | Intel Core 2 Duo 2,1 GHz | 2048 MB RAM | 80 GB HDD | Mac OS X 10.6.2 (Snow Leopard) | Adobe CS4 Design Premium |
![]() |
ProggerOrk |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie wärs mit einen Tool das die Dateien in eine Datei ackt und verschlüsselt beispilsweise:
http://www.blitzbase.de/programme/datapack.htm |
||
![]() |
Dark Mania |
![]() Antworten mit Zitat ![]() |
---|---|---|
Noch nie was von .pk3 oder .pak gehört? Da kann man zwar noch drauf zugreifen, aber die meisten sind schlichtweg zu dumm dafür ![]() mfg, Dark Mania |
||
![]() |
WEBLink |
![]() Antworten mit Zitat ![]() |
---|---|---|
ProggerOrk hat Folgendes geschrieben: Wie wärs mit einen Tool das die Dateien in eine Datei ackt und verschlüsselt beispilsweise:
http://www.blitzbase.de/programme/datapack.htm Die Seite ist leider down, kann ir jemand das Progg schicken oder ne altanative anssagen? |
||
![]() |
ProggerOrk |
![]() Antworten mit Zitat ![]() |
---|---|---|
WEBLink hat Folgendes geschrieben: ProggerOrk hat Folgendes geschrieben:
Wie wärs mit einen Tool das die Dateien in eine Datei ackt und verschlüsselt beispilsweise:
http://www.blitzbase.de/programme/datapack.htm Die Seite ist leider down, kann ir jemand das Progg schicken oder ne altanative anssagen? ups sorry...^^ aber das tool würde ich auch gerne haben=) |
||
Aktuelles Spiel: Treasure Miner
Mehr Informationen unter: http://www.pucupo-games.de |
![]() |
Bms |
![]() Antworten mit Zitat ![]() |
---|---|---|
alternativ könnte man das auch mit data, read und createimage lösen... | ||
Reblonce (Jump + Run + Shoot - Game; 20 Levels): Download |
![]() |
dimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
hallo,
wenn ihr euch noch für terabits packer interessiert habn link gefunden hier: http://www.terabit.nildram.co.uk/PakMaker.zip gruss dimaster |
||
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Bms
wie meinst du das? |
||
![]() |
Bms |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich mach mal ein beispiel:
Code: [AUSKLAPPEN] Graphics 640,480,32,1 Data 2,2 ;Breite und Höhe Data 255,0,0, 0,128,0 ,0,255,100 ;RGB Data 255,140,0, 255,0,0 ,0,255,150 Data 255,80,0, 0,128,0 ,0,255,180 ;Breite und hoehe einlesen Read br Read ho ;Bild erzeugen bild=CreateImage(br,ho) SetBuffer ImageBuffer(bild) ;Farbwerte einlesen und punkte ins Bild malen For count1=0 To br For count2=0 To ho Read r Read g Read b Color r,g,b Plot count1,count2 Next Next ;Bilid anzeigen SetBuffer BackBuffer() DrawImage bild,0,0 Flip WaitKey ;Ende :) End es müsste sich eigentlich von selbst erklären. es ist zwar nicht sehr interressant, den ganzen tag nur zahlen zu schreiben, man könnte allerdings ein programm schreiben, das die Farbwerte eines Bildes einliest und das ganze in eine *.txt-Datei schreibt. dann nur noch markieren, kopieren, ins proggi einfügen, den obigen "Farbwerte-Auslese-Ins-Bild-Punkte-mal"- Teil einfügen, ein bisschen umändern und schon gehts. [ich weis, dass das sau viel arbeit ist] |
||
Reblonce (Jump + Run + Shoot - Game; 20 Levels): Download |
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Ach du sch***, das ist ja wohl die schlimmste Lösung die man nur machen kann... ![]() grüße |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
@David : Wieso die schlimmste Lösung?
So schlimm ist das gar nicht mit den Data Zeilen! Schlimm ist der Code von Bms(Plot), da es extrem langsam ist! Meine neuste Version liest die Bilder aus Data Zeilen ca 20% schneller ein als von der Festplatte! Gruß Ralf |
||
[BB2D | BB3D | BB+]
|
![]() |
joachim_neu |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn ihr euch gegen richtige leutz "verteidigen" wollt, dann geht das schon, aber ich denke eine einfache XORung reicht da auch! is ja nix wichtiges, soll nur net von jedem gelesen werden! | ||
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da stimm ich die zu, das Xor ausreicht ist auch eine Variante!
Allerdings können da "die Kleinen Kinder drauf rummalen" Wie oben schon geschrieben steht, sind datapack und Pakmaker schon sehr gute Tools dafür! Mit Datazeilen lassen sich zb Bitmapfonts sichern, da das kopieren sehr schwierig ist! |
||
[BB2D | BB3D | BB+]
|
![]() |
joachim_neu |
![]() Antworten mit Zitat ![]() |
---|---|---|
nö, wie sollen denn die darauf "rumkritzeln"??? | ||
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de |
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die wahrscheinlich beste Lösung: Ressource-Manager schreiben.
Ist doch einfach witzig, wenn es leidglich ein "media.res" gibt, das du deinem Spiel hinzufügen musst. LordChaos |
||
Variety is the spice of life. One day ignore people, next day annoy them. |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
@joachim_neu
Stimmt die Datei kann ja nicht geöffnet werden! |
||
[BB2D | BB3D | BB+]
|
![]() |
DivineDominion |
![]() Antworten mit Zitat ![]() |
---|---|---|
auf blitzbase steht doch was vom einfügen der mediendateien an die exe, oder nicht? binär an die exe hängen und - das gebe ich zu - etwas umständlicher auslesen. | ||
christian.tietze@gmail.com - https://christiantietze.de
macOS |
![]() |
dimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Global package_exe$ ="c:\xxx.exe" Global package_pass$="ExtremeHardCheese" Global package_temp$=SystemProperty$("TEMPDIR") Global package_data =CreateBank(0) Global package_byte =CreateBank(0) Global package_pos =CreateBank(0) Global package_count=0 Global package_size =0 Graphics 640,480,16,2 ;---ACHTUNG BEISPIEL 1--- ;package_addfile("c:\bild1.png") ;package_addfile("c:\bild2.png") ;package_attach() ;---ACHTUNG BEISPIEL 2--- ;package_readinfo() ;img1=package_loadimage(1) ;img2=package_loadimage(2) ;DrawBlock img1,0,0 ;DrawBlock img2,100,100 WaitKey() FreeBank package_data FreeBank package_byte FreeBank package_pos End ;--------------------------------------------------------------------- ;Diese Funktion fügt eine Media-Datei zum Paket hinzu ; ;name: Beliebiger Dateiname ;--------------------------------------------------------------------- Function package_addfile(name$) file=ReadFile(name$) If file=0 Then RuntimeError name$+" wurde nicht gefunden" EndIf size=FileSize(name$) If size=0 Then CloseFile file RuntimeError name$+" ist nur 0 Byte groß" EndIf package_size=package_size+size package_count=package_count+1 ResizeBank package_byte,package_count*4 PokeInt package_byte,(package_count-1)*4,size ResizeBank package_pos,package_count*4 PokeInt package_pos,(package_count-1)*4,package_size-size offset=BankSize(package_data) ResizeBank package_data,offset+size ReadBytes package_data,file,offset,size For n=1 To Len(package_pass$) key=Asc(Mid$(package_pass$,n,1)) keystart=offset+n-1 keyend=offset+size-1 keystep=Len(package_pass$)-1 For i=keystart To keyend byte=PeekByte(package_data,i) PokeByte package_data,i,byte Xor key i=i+keystep Next Next CloseFile file End Function ;--------------------------------------------------------------------- ;Diese Funktion hängt unser Paket an eine EXE-Datei an ;--------------------------------------------------------------------- Function package_attach() file=OpenFile(package_exe$) If file=0 Then RuntimeError package_exe$+" wurde nicht gefunden" EndIf If package_size=0 Then CloseFile file RuntimeError "Paket ist nur 0 Byte groß" EndIf offset=FileSize(package_exe$) SeekFile file,offset WriteBytes package_data,file,0,package_size WriteBytes package_byte,file,0,package_count*4 WriteBytes package_pos ,file,0,package_count*4 WriteInt file,package_size WriteInt file,package_count WriteInt file,$49414242 CloseFile file End Function ;--------------------------------------------------------------------- ;Diese Funktion lädt Paket-Informationen aus einer EXE-Datei aus ;--------------------------------------------------------------------- Function package_readinfo() file=ReadFile(package_exe$) If file=0 Then RuntimeError package_exe$+" wurde nicht gefunden" EndIf exesize=FileSize(package_exe$) SeekFile file,exesize-4 signature=ReadInt(file) If signature<>$49414242 Then RuntimeError package_exe$+" enthält keinen Anhang" EndIf SeekFile file,exesize-8 package_count=ReadInt(file) ResizeBank package_byte,package_count*4 ResizeBank package_pos,package_count*4 SeekFile file,exesize-package_count*8-12 ReadBytes package_byte,file,0,package_count*4 ReadBytes package_pos,file,0,package_count*4 package_size=ReadInt(file) CloseFile file End Function ;--------------------------------------------------------------------- ;Diese Funktion "entpackt" eine Datei aus einer EXE ; ;nr: Nummer des Paketes (ab 1 bis max Dateien) ;kind: Ausgabedateityp (ohne Pfad/Name - z.B. bmp,png,wav...) ;--------------------------------------------------------------------- Function package_exportfile(nr,kind$) If nr<1 Or nr>package_count Then RuntimeError "Paket "+Str$(nr)+" existiert nicht" file=ReadFile(package_exe$) If file=0 Then RuntimeError package_exe$+" wurde nicht gefunden" EndIf exesize=FileSize(package_exe$) pos=PeekInt(package_pos,nr*4-4) size=PeekInt(package_byte,nr*4-4) SeekFile file,exesize-package_count*8-12-package_size+pos ResizeBank package_data,size ReadBytes package_data,file,0,size CloseFile file For n=1 To Len(package_pass$) key=Asc(Mid$(package_pass$,n,1)) keystart=n-1 keyend=size-1 keystep=Len(package_pass$)-1 For i=keystart To keyend byte=PeekByte(package_data,i) PokeByte package_data,i,byte Xor key i=i+keystep Next Next If kind$<>"" Then kind$="."+kind$ file=WriteFile(package_temp$+"out"+kind$) If file=0 Then Return WriteBytes package_data,file,0,size CloseFile file End Function ;--------------------------------------------------------------------- ;Diese Funktion lädt ein Bild aus einer EXE-Datei ; ;nr: Nummer des Paketes (ab 1 bis max Dateien) ;width: Breite bei AnimImage (optional) ;height: Höhe bei AnimImage (optional) ;count: Anzahl bei AnimImage (optional) ;--------------------------------------------------------------------- Function package_loadimage(nr,width=0,height=0,count=0) package_exportfile(nr,"") If width>0 And height>0 And count>0 Then image=LoadAnimImage(package_temp$+"out",width,height,0,count) Else image=LoadImage(package_temp$+"out") EndIf DeleteFile package_temp$+"out" Return image End Function meinst du sowas? ich weiss nicht obs geht habs nicht ausprobiert gruss dimaster |
||
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
hey ich hab mal das von bms ausprobiert... es ist wirklich gut! Das einlesen der Bilder geht auf folgende Art und weise bis zu 4-mal schneller...
das mit den millisecs ist wegen der zeit, die ich gestoppt habe... Code: [AUSKLAPPEN] Graphics 800,600 start1 = MilliSecs() Bild = LoadImage("Bild.jpg") start2 = MilliSecs() zeit1 = start2-start1 Bildneu = CreateImage(500,400) Dim neuefarbe(500,400) SetBuffer ImageBuffer(Bild) LockBuffer ImageBuffer(Bild) For x = 0 To 500 For y = 0 To 400 neuefarbe(x,y) = ReadPixelFast(x,y) Next Next UnlockBuffer ImageBuffer(Bild) start3 = MilliSecs() SetBuffer ImageBuffer(Bildneu) LockBuffer ImageBuffer(Bildneu) For x = 0 To 500 For y = 0 To 400 WritePixelFast x,y, neuefarbe(x,y) Next Next UnlockBuffer ImageBuffer(Bildneu) start4 = MilliSecs() zeit2 = start4-start3 SetBuffer BackBuffer() DrawImage Bildneu,0,0 Text 600,10,zeit1+" - "+zeit2 Flip WaitKey achja: für das spiel muss das feld "neuefarbe" irgendwo gespeichert werden. Danach kann man es auslesen. [edit] oh, ich nehms zurück mit dem Speichern. bei einem so großen bild steigen die Pixel ja ins unermessliche... |
||
![]() |
MoochBetreff: ... |
![]() Antworten mit Zitat ![]() |
---|---|---|
In Blitzedit ist ein Imagereader eingebaut und mit upx ists auch bei mehreren Bildern noch klein.
Nur das compilieren und packen dauert lange... |
||
Pentium IV 3.0Ghz; nVidia Geforce 6800;
Microsoft Windows XP Home SP2; BlitzBasic 3D .:: Sites ::. .:: http://www.fl4sh-clan.de/ ::. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group