Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Bild ohne Paint oder Palette farblich verändern
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Type



Anmeldungsdatum: 24.02.2006
Beiträge: 187
Wohnort: Dresden

BeitragVerfasst am: 18.03.2007, 14:42    Titel: Bild ohne Paint oder Palette farblich verändern Antworten mit Zitat

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 durchgeknallt

MfG Type

PS. Sry für den besch... Titel aber mir ist echt nicht eingefallen, wie ich das ausformulieren sollte zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 18.03.2007, 14:50    Titel: Antworten mit Zitat

Da hast wirklich ein kleines Problem zwinkern
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Type



Anmeldungsdatum: 24.02.2006
Beiträge: 187
Wohnort: Dresden

BeitragVerfasst am: 18.03.2007, 14:58    Titel: Antworten mit Zitat

alsooo grinsen

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 durchgeknallt durchgeknallt durchgeknallt

Ich glaub nicht, dass das jemand versteht... mit dem Kopf durch die Mauer wollen

EDIT: Das mit PEEK und POKE ist laut QBMonFAQ bei Screen 12 sogar noch langsamer...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 18.03.2007, 15:01    Titel: Antworten mit Zitat

Warum änderst Du nicht einfach die Paletteneinträge der BMP im Grafikprogramm ? das erspart sicher einiges an Arbeit zwinkern
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Type



Anmeldungsdatum: 24.02.2006
Beiträge: 187
Wohnort: Dresden

BeitragVerfasst am: 18.03.2007, 15:07    Titel: Antworten mit Zitat

Ist vielleicht ne blöde Frage aber wie und womit geht das!? peinlich
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 18.03.2007, 15:10    Titel: Antworten mit Zitat

Mit den meisten gängigen Grafik-Programmen sollte das möglich sein, ich weiss ja nicht welches Du benutzt zwinkern
Im schlimmsten Fall könnte ich das auch eben übernehmen wenn Du mir das Bild schickst.....
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 18.03.2007, 15:16    Titel: Antworten mit Zitat

Zu PSET und POKE: Ich hab vor einer Weile mal ein kleines Benchmark dazu geschrieben: Download (~30KB) (EXE + Source) Bei mir war PSET meist um 2/3 schneller als POKE.
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Type



Anmeldungsdatum: 24.02.2006
Beiträge: 187
Wohnort: Dresden

BeitragVerfasst am: 18.03.2007, 15:17    Titel: Antworten mit Zitat

Alles klar, hab was gefunden.

Firma dankt für diese schnelle Hilfe! (Hätte man besser über nen Chat machen können grinsen )
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 18.03.2007, 15:21    Titel: Antworten mit Zitat

@Sebastian:
zu einem ähnlichem ergebniss bin ich in FreeBASIC auch gekommen, obwohl es für mich etwas verwirrend ist zwinkern 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 grinsen
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 18.03.2007, 16:42    Titel: Antworten mit Zitat

Sebastian hat Folgendes geschrieben:
Bei mir war PSET meist um 2/3 schneller als POKE.


äh, momeeeeeeent, POKE ist um welten schneller durchgeknallt
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 18.03.2007, 16:49    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 18.03.2007, 16:54    Titel: Antworten mit Zitat

ich hab auch viel getestet durchgeknallt 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... durchgeknallt
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 18.03.2007, 16:58    Titel: Antworten mit Zitat

Das finde ich seltsam ?!
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 18.03.2007, 17:01    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 18.03.2007, 17:09    Titel: Antworten mit Zitat

Ich muss mich an der Stelle auch mal einschalten. grinsen
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. Ja!
Whyever.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 18.03.2007, 17:11    Titel: Antworten mit Zitat

vlt ist das ja unter XP irgendwie anders. aber ich habe jahrelang andere ergebnisse gehabt happy
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 18.03.2007, 17:14    Titel: Antworten mit Zitat

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.... lächeln
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 18.03.2007, 17:16    Titel: Antworten mit Zitat

aber das is net so 1337-haxx0r-style schimpfen durchgeknallt
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 18.03.2007, 18:43    Titel: Antworten mit Zitat

Zitat:
aber zu meinen qb-zeiten habe ich PSET wie die pest gemeidet,

grinsen

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 18.03.2007, 18:50    Titel: Antworten mit Zitat

hm, war da was falsch dran? happy

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz