Daten in ein Image / Textur einschreiben

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

StarGazer

Betreff: Daten in ein Image / Textur einschreiben

BeitragDi, Okt 17, 2006 21:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ist es eigentlich möglich in ein Image oder besser Textur das man mit CreateImage / CreateTexture erstellt wurde Daten hineinzuschreiben ohne daß man sie mit WritePixlFast in ein Buffer schreiben muß, sondern einfach direkt die Daten herreinschreiben ?

StepTiger

BeitragDi, Okt 17, 2006 21:37
Antworten mit Zitat
Benutzer-Profile anzeigen
??? was willst du?

mit writepixelfast schreibst du die daten rein
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

d-bug

BeitragMi, Okt 18, 2006 9:44
Antworten mit Zitat
Benutzer-Profile anzeigen
@StepTiger
Quark! Du must nicht zwangsläufig nur mit ql:Writepixel bzw. ql:Writepixelfast
arbeiten. Man kann genauso auch mit ql:SetBuffer (ql:ImageBuffer(DeinImage))
das Image als aktuellen Buffer setzen und ganz normal darauf zeichnen.
Also mit ql:DrawImage, ql:Text usw. Man muss eben nur darauf achten, dass
man hinterher wieder auf den ql:Backbuffer umschaltet.

cheers

StarGazer

BeitragMi, Okt 18, 2006 13:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber das ist ja genau was ich nicht möchte, SetBuffer und WritePixelFast.
Ich würde gern die Daten direkt reinschreiben, also aus einem File herrauslesen und direkt hinneinschreiben, ohne das WritePixel ect zu benutzen, denn das ist ja nicht gerade schnell wenn man große Bilder erstellt.
Ich wollte gern wissen ob es eine andere Methode als WritePixel gibt.

DerHase

BeitragMi, Okt 18, 2006 13:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst Drawimage auch auf ein ImageBuffer anwenden und auch Rect und Oval. Um Dir genauer helfen zu können solltest Du genau erklären was Du machen willst Smile
Play Satyr!
 

Dreamora

BeitragMi, Okt 18, 2006 13:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt keine andere Möglichkeit als die Pixeldaten in den Buffer zu schreiben. Sei es mit Drawbefehlen oder WritePixel / WritePixelfast.

Ausser du operierst direkt auf den Files mittels Byte Befehlen. Nur dann musst du dich erst mit dem Datenformat auseinander setzen um die Daten entsprechend zu handhaben.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

D2006

Administrator

BeitragMi, Okt 18, 2006 13:58
Antworten mit Zitat
Benutzer-Profile anzeigen
In BlitzPlus kann man mittles ql:PeekByte und ql:Pokebyte Pixel direkt bearbeiten. Das ist sicher nochmal gut 20% schneller als WritePixelFast, aber sicher für dich immernoch nicht schnell genug, wie ich mir denken kann. Smile

Schneller geht's nicht.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Markus2

BeitragMi, Okt 18, 2006 21:19
Antworten mit Zitat
Benutzer-Profile anzeigen
@StarGazer
wofür soll das gut sein ?
Muß ja irgendein Sinn haben das du keine Bilder lädst .

StepTiger

BeitragDo, Okt 19, 2006 15:24
Antworten mit Zitat
Benutzer-Profile anzeigen
d-bug hat Folgendes geschrieben:
@StepTiger
Quark! Du must nicht zwangsläufig nur mit WritePixel bzw. WritePixelFast
arbeiten. Man kann genauso auch mit SetBuffer (ImageBuffer(DeinImage))
das Image als aktuellen Buffer setzen und ganz normal darauf zeichnen.
Also mit DrawImage, Text usw. Man muss eben nur darauf achten, dass
man hinterher wieder auf den BackBuffer umschaltet.


hab seine frage nicht verstanden. Er fragt, wie man writepixel umgehen kann, also die daten direkt reinschreibt. Aber so schreibt man doch die daten direkt rein. du kannst natürlich auch mit files arbeiten aber ich würde bezweifeln, dass das ständige loadimage drawimage schneller ist.

dass man auf buffern malen kann ist mir auch klar Smile
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

StarGazer

BeitragMi, Okt 25, 2006 23:06
Antworten mit Zitat
Benutzer-Profile anzeigen
@D2006
BlitzPlus besitze ich leider nicht, nur Blitz3D.

@Markus2
Ich habe um Bilder zu verschlüsseln mir ein eigenes BildFormat erstellt.


-----------------------------------------------------------------------------------------------
Ich habe ein eigenes BildFormat wo ich die Daten dirket auslesen kann, und sie so auch direkt in ein Bild einschreiben könnte.
Mein eigenes Format zu laden ist leider viel langsamer als LoadImade oder LoadTexture, deshalb wollte ich gern wissen ob es nicht eine schnellere Möglichkeit gibt Daten direkt in ein Bild / Texture zu schreiben.

Markus2

BeitragDo, Okt 26, 2006 0:30
Antworten mit Zitat
Benutzer-Profile anzeigen
StarGazer hat Folgendes geschrieben:
@Markus2
Ich habe um Bilder zu verschlüsseln mir ein eigenes BildFormat erstellt.
-----------------------------------------------------------------------------------------------
Ich habe ein eigenes BildFormat wo ich die Daten dirket auslesen kann, und sie so auch direkt in ein Bild einschreiben könnte.
Mein eigenes Format zu laden ist leider viel langsamer als LoadImade oder LoadTexture, deshalb wollte ich gern wissen ob es nicht eine schnellere Möglichkeit gibt Daten direkt in ein Bild / Texture zu schreiben.


Also wenn du nur das klauen von Bilder verhindern willst kannst du
es auch als Bild speichern z.B. über ne Formel die Pixel oder Zeilen wild durch einander .
Dann kannst du es ganz normal einladen was schnell geht und
ein paar fragmente wieder nach deiner Formel austauschen in BB und fertig .

Sobald die Bilder im Speicher sind für die Anzeige kannst du das klauen
eh nicht verhindern , also wenn jemand dein Programm hat was
die Bilder anzeigt .

StarGazer

BeitragDo, Okt 26, 2006 13:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Das klauen kann man nie 100% verhindern, aber so kann man wenigsten verhidern das nicht gleich jeder an die Daten rankommt, der muß sich dann wenigsten anstrengen Smile.
Klar könnte man einfach ein Screenshot machen, aber in 3D ist das dann nicht 1 zu 1 wie das Orginal, meist ist es etwas kleiner, gezoomt, verschwaschnener Ect.

Wie hast du das denn gemeint als normales Bild speichern. Wenn ich also ein File ZB Bmp mit Formel verschlüssel, muß ich es dennoch selbständig mit eigenem Loader herreinladen und mit WritePixel in ein Bild malen, BB würde es sonst falsch darstellen.
Meinst du etwa das Bild hat einige Fehler, und die würde ich dann im nach hinein korregieren ?
Da müste man aber ersmal eine Speicherruntine finden, PNGs laden (ok BB Smile ) und wieder als PNG nur mit den falschen Daten speichert. Bmp ist sonst bissen groß.
 

Dreamora

BeitragDo, Okt 26, 2006 13:50
Antworten mit Zitat
Benutzer-Profile anzeigen
StarGazer hat Folgendes geschrieben:

Klar könnte man einfach ein Screenshot machen, aber in 3D ist das dann nicht 1 zu 1 wie das Orginal, meist ist es etwas kleiner, gezoomt, verschwaschnener Ect.


Traumvorstellung. Man kann binnen Minuten jedes Bild in +- voller Quali herstellen aus einem Screenshot.

Davon abgesehen werden Leute die die Grafik klauen wollen direkt via Speicher und DX Surface gehen.

Wenn du deine Daten schützen willst, schau dir Mal den BBCruncher an ... (oder wenns für ein kommerzielles Projekt ist, ist MoleBox die mit Abstand empfehlenswerteste Lösung)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
  • Zuletzt bearbeitet von Dreamora am Do, Okt 26, 2006 19:06, insgesamt einmal bearbeitet

Markus2

BeitragDo, Okt 26, 2006 19:04
Antworten mit Zitat
Benutzer-Profile anzeigen
@StarGazer

denk dir mal das Bildformat weg das du nur den Inhalt hast .
Zeilen vertauschen und Zeilen verschieben das was rechts raus geht links
wieder rein kommt .
Das speicherst du mit BB als BMP und mit nem Malprogramm in ein
verlustfreies Bildformat was BB lesen kann .
Bild einlesen in BB und mit den Grafik Befehlen deine vertauscherei wieder
rückgängig machen .

Für jedes Bild kannst du auch unterschiedlich den Inhalt zum Puzzle Spiel
machen .

Blockweise also z.B. 16x16 Pixel tauschen würden auch schon den Zweck erfüllen .

StarGazer

BeitragFr, Okt 27, 2006 12:47
Antworten mit Zitat
Benutzer-Profile anzeigen
@Markus2
Danke, nun hab ich es verstanden Smile.
Aber ich müste dann alles neucoden und mein altes wegwerfen, hmmm, noch birnge ich es nicht übers Herz Smile, vielleicht beim nächsten Projekt.

@Dreamora
Von einem gescalten unscharfen Bild das Orginal 1zu1 wieder herstellen, das bezweifel ich mal sehr stark. Du kriegst sicherlich ein gutes Bild daraus, mit Tools Bild verschärfen Ect, doch es wird niemals die selbe Qulität haben wie das Orginal, und schon garnicht 1zu1, es mag dennoch akzeptabel für die Zwecken desjenigen sein.
Zudem sagte ich ja daß man es nie 100% verhindern kann, das habe ich auch garnicht vor, ich will einfach nur daß nicht gleich jederman darn kann.

Übrgens zu MoleBox,
ich habe es mir gekauft weil es alle Daten wunderbar sichert, nur dann war ich doch sehr entäuscht davon, da es leider nicht auf jedem Rechner läuft, und seidem benutze ich es nicht mehr.
 

Dreamora

BeitragFr, Okt 27, 2006 15:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Wer braucht denn 100% das original? man kann auch bei leichten Variationen immer noch hervorragende Texturen haben.

Und solange du übrigens kein "grad direkt davor stellen" verhinderst, hält sich das ganze mit verzerrung etc in grenzen.

Und kleiner? Weiss nicht, nutzt du 2048x2048 texturen? weil mein screen zb läuft auf 1680x1050 ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

StepTiger

BeitragFr, Okt 27, 2006 17:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreamora hat Folgendes geschrieben:
weil mein screen zb läuft auf 1680x1050 ...


was ist das denn für ein komisches bildformat? 8:5 Breitbild Smile

schreib dir doch nen kleinen algo, dem jeder pixel folgt.

sowas wie:
Code: [AUSKLAPPEN]
p=x*(height+1)+y
p2=p*2+7/4
p2=p2 mod (width*(height+1)+height)


und dann liest du die farbe aus p2 aus. Dürfte gehen. (Bin mir aber gar nicht so sicher)
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group