Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Type
Anmeldungsdatum: 24.02.2006 Beiträge: 187 Wohnort: Dresden
|
Verfasst am: 18.03.2007, 14:42 Titel: Bild ohne Paint oder Palette farblich verändern |
|
|
Hallo Leute,
wie kann ich folgenden Code so schnell machen, dass das alles weniger als einer Sekunde durchgeführt wird?
Code: |
FOR x% = 0 TO 639
FOR y% = 0 TO 479
IF POINT(x%,y%) = 0 THEN PSET (x%, y%), 15
NEXT b%
NEXT a%
|
Das Problem ist, dass ungefähr die Hälfte des Bildes (Auflösung Screen 12 also 640*480*16) geändert werden muss und das daher entsprechend lange dauert.
Außerdem sind die Pixel mit Wert 0 überall verteilt. (Also ist kein PAINT möglich)
Der PALETTE-Befehl oder Ähnliches sollte am besten auch nicht benutzt werden, da nur die Farbwerte an der entsprechenden Stelle geändert werden sollen. (Pixel 0 soll zu Pixel 15 werden)
Ich hoffe ihr könnt die Problematik nachvollziehen
MfG Type
PS. Sry für den besch... Titel aber mir ist echt nicht eingefallen, wie ich das ausformulieren sollte  |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 18.03.2007, 14:50 Titel: |
|
|
Da hast wirklich ein kleines Problem
Ich weiss nicht wie das bei QB ist, schon mit Peek/Poke probiert ob es schneller ist ?! Ansonsten kann ich nur immer wieder FB empfehlen mit der Custom action und put dürfte es auch etwas schneller gehen...
Aber warum musste Du das von Hand ändern ? _________________
 |
|
Nach oben |
|
 |
Type
Anmeldungsdatum: 24.02.2006 Beiträge: 187 Wohnort: Dresden
|
Verfasst am: 18.03.2007, 14:58 Titel: |
|
|
alsooo
Es wird eine BMP geladen und angezeigt. (Screen 12 mit 16 Farben)
Der Hintergrund-Farbwert 0 ist weiß, soll aber wieder schwarz werden. Damit man einen schwarzen Hintergrund bei der Schrift hat.
Wenn ich jetzt aber die RGB Werte für 0 auf Schwarz stelle wird das Bild an den jeweiligen Stellen auch Schwarz.
Also wollte ich den Farbwert für 15 (da gibs nur ein kleines Pixel in der Ecke - sieht man nicht) auf weiß stellen und die Pisel mit dem Wert 0 auf 15 setzen (so bleiben die ja weiß) und den Wert 0 schwarz machen
Ich glaub nicht, dass das jemand versteht...
EDIT: Das mit PEEK und POKE ist laut QBMonFAQ bei Screen 12 sogar noch langsamer... |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 18.03.2007, 15:01 Titel: |
|
|
Warum änderst Du nicht einfach die Paletteneinträge der BMP im Grafikprogramm ? das erspart sicher einiges an Arbeit  _________________
 |
|
Nach oben |
|
 |
Type
Anmeldungsdatum: 24.02.2006 Beiträge: 187 Wohnort: Dresden
|
Verfasst am: 18.03.2007, 15:07 Titel: |
|
|
Ist vielleicht ne blöde Frage aber wie und womit geht das!?  |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 18.03.2007, 15:10 Titel: |
|
|
Mit den meisten gängigen Grafik-Programmen sollte das möglich sein, ich weiss ja nicht welches Du benutzt
Im schlimmsten Fall könnte ich das auch eben übernehmen wenn Du mir das Bild schickst..... _________________
 |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Type
Anmeldungsdatum: 24.02.2006 Beiträge: 187 Wohnort: Dresden
|
Verfasst am: 18.03.2007, 15:17 Titel: |
|
|
Alles klar, hab was gefunden.
Firma dankt für diese schnelle Hilfe! (Hätte man besser über nen Chat machen können ) |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 18.03.2007, 15:21 Titel: |
|
|
@Sebastian:
zu einem ähnlichem ergebniss bin ich in FreeBASIC auch gekommen, obwohl es für mich etwas verwirrend ist denn früher hieß es immer Peek und Poke wären die schnellere alternative, allerdings hatte man früher zu DOS Zeiten eigentlich gar keine Alternative  _________________
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 18.03.2007, 16:42 Titel: |
|
|
Sebastian hat Folgendes geschrieben: | Bei mir war PSET meist um 2/3 schneller als POKE. |
äh, momeeeeeeent, POKE ist um welten schneller  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 18.03.2007, 16:49 Titel: |
|
|
Bei verschiedenen Tests die ich gemacht habe, hat PSet, Poke um längen geschlagen... kein plan wieso, aber ist halt so. Will mich auch net beklagen.... _________________
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 18.03.2007, 16:54 Titel: |
|
|
ich hab auch viel getestet und poke hat bei mir das bild grundsätzlich fast unmerklich aufgebaut, während das bei PSET sich so von oben nach unten "abgerollt" hat...  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 18.03.2007, 16:58 Titel: |
|
|
Das finde ich seltsam ?! _________________
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 18.03.2007, 17:01 Titel: |
|
|
Am besten hat man das auf meinem alten 133er gemerkt. es ist aber auch ein unterschied, ob du so arbeitest:
Code: |
def seg = &HA000
for x = 0 to 319
for y = 0 to 199
poke (x+y*320&), 15
next
next
def seg
|
was sehr schnell ist, oder so (langsamer):
Code: |
for x = 0 to 319
for y = 0 to 199
def seg = &HA000
poke (x+y*320&), 15
def seg
next
next
|
bei der 2. methode is pset wohl in der tat schnelelr, weiß nicht, aber zu meinen qb-zeiten habe ich PSET wie die pest gemeidet, weil's auf meinem 133er nunmal so richtig lahm war. auch noch auf meinem 350er war poke schneller. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 18.03.2007, 17:09 Titel: |
|
|
Ich muss mich an der Stelle auch mal einschalten.
Ich hab am Anfang das Videosegment (0xA000) gesetzt, die Schleife durchlaufen lassen und am Ende wieder auf das Code-Segment (CS, Standardsegment des laufenden Programms) zurückgesetzt, also DEF SEG.
Und unter Windows war bei mir eindeutig auch PSET schneller.
Whyever. _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 18.03.2007, 17:11 Titel: |
|
|
vlt ist das ja unter XP irgendwie anders. aber ich habe jahrelang andere ergebnisse gehabt  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 18.03.2007, 17:14 Titel: |
|
|
Ich hab immernoch 98SE und wie geasgt, PSet ist um ein paar ms schneller...
Aber im prinzip soll es doch egal sein, jeder sol die Methode nutzen die für Ihn am besten ist...
Ich persönlich finde es nicht schlimm mit Pset ect zu arbeiten, macht einiges einfacher....  _________________
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 18.03.2007, 17:16 Titel: |
|
|
aber das is net so 1337-haxx0r-style  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 18.03.2007, 18:43 Titel: |
|
|
Zitat: | aber zu meinen qb-zeiten habe ich PSET wie die pest gemeidet, |
Zitat: | vlt ist das ja unter XP irgendwie anders. |
Ich benutz Windows XP zwar nur ziemlich selten, aber bei mir war PSET unter NT4, 2000 und XP immer schneller. Auf Windows 9x hab ich keine Vergleichstests gemacht, wenn ich mich recht erinnere. Ich benutz allerdings auch meistens SCREEN 12 und eigentlich nie 13, wenn ich was Grafisches mit QB programmiere. Wie der Vergleich in SCREEN 13 aussieht, weiß ich jetzt also nicht, aber in SCREEN 12 ist PSET bei mir auf diversen Windowsversionen auf verschiedenen Rechnern immer schneller als POKE. _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 18.03.2007, 18:50 Titel: |
|
|
hm, war da was falsch dran?
also ich hab pset nicht mit screen 12 getestet, nur unter screen 13, vlt liegt's da dran... is für games sowieso besser als der 12er^^ _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
|