Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 04.07.2006, 15:51 Titel: Imagepuffer (Einzelne Pixel auslesen) |
|
|
So, nach langer Zeit melde ich mich zurück und brauche schon HILFE.
Ich arbeite jetzt schon etwas länger mit imagepuffern (imagecreate(x,y,c)) und möchte jtzt gerne wissen (nach einigen fehlgeschlagenene versuchen ) wie kann ich einzelen pixel auslesen aus meinem puffer? mit
puffer [x,y] geht es nicht und auch nicht mit [x+y*xmax] usw.
kann mir da jemand helfen? BITTE!
PS: wie kann auch aus dem aktuellen bildschirmpointer so einen pixel auslesen und überhaupt, woher kriege ich den?  |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 04.07.2006, 15:58 Titel: |
|
|
probier mal, entweder
puffer[4+x+y*xmax]
oder
puffer[4+y+x*ymax]
eins von beiden müsste gehen, vorausgesetzt, du hast puffer als integer ptr oder sowas deklariert was eben vier bytes hat. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 04.07.2006, 16:28 Titel: |
|
|
öhm.. .als any pointer?
da krieg ich die Fehlermeldung 'incomplete type' |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 04.07.2006, 16:49 Titel: |
|
|
nein sag ich doch, integer ptr.. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 04.07.2006, 16:55 Titel: |
|
|
Es gibt 2 möglichkeiten:
Du machst den imagepuffer als integer, wie misterD schon sagt, oder du machst das mit cast/cptr.
Code: |
pixel=cast(integer ptr,puffer)[1+x+y*xmax]
|
|
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 04.07.2006, 18:08 Titel: |
|
|
evtl. helfen dir diese Erklärungen:
http://volta.freebasic.de/imag/image2.html) _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 04.07.2006, 18:31 Titel: |
|
|
Müsst ihr eigenlich beim kleinstem Problem schon die Pointer raushollen .
Link
Zitat: | result = Point( coord_x, coord_y [,buffer] ) |
auch gleich das setzten:
(bevor wieder die grosse Pointerwanderung startet )
Link
Zitat: | PSet [target ,] [STEP] (x, y) [,color] |
Edit://
Zitat: | PS: wie kann auch aus dem aktuellen bildschirmpointer so einen pixel auslesen und überhaupt, woher kriege ich den? |
bildschirmpointer brauchst du nicht, es geht ja auch mit Point . _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 04.07.2006, 19:18 Titel: |
|
|
hast ja recht Michael, ich nehm dann lieber ASM
im Ernst: es geht mit Pointern vieles einfacher und schneller, gerade bei byte - Akrobatik. _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 04.07.2006, 20:26 Titel: |
|
|
pointer hat man entweder ganz oder garnicht verstanden, alles dazwischen ist ungültiger speicherzugriff  _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 04.07.2006, 20:41 Titel: |
|
|
Also.... gibts da ned was schnelleres als point? das ist immer UNGLAUBLICH LANGSAM...
ä
Und am rande:
was macht dieses '_' am ende der Zeile immer? ( das _ ist gemeint!) |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 04.07.2006, 21:36 Titel: |
|
|
_ am ende heißt, dass die zeile nicht zuende is sondern in der nächsten zeile weitergeht. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 05.07.2006, 12:49 Titel: |
|
|
Wow! Das ist ja mal was sinnvolles!
damit erspare ich mir endlich die endlos langen dim zeilen!
Achja! Danke für eure hilfe! _________________ Danke an Volta für seine großartige MMX_fade function. *verneig*
Personal-DNA:
<script src="http://personaldna.com/h/?k=qtrCFboSuCOpFrX-OI-AADBA-f78d&t=Free-Wheeling+Leader">
</script>
Zitat: | Das Forum für den zum QBASIC kompatieblen open soure FreeBasic Kompiler. | by DJ. Peters |
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 05.07.2006, 15:02 Titel: |
|
|
Wer das Ergebnis sehen will, habs ins No-paste gestellt unter dem namen
DLA.bas
Ist eigentlich was wissenschaftliches. _________________ Danke an Volta für seine großartige MMX_fade function. *verneig*
Personal-DNA:
<script src="http://personaldna.com/h/?k=qtrCFboSuCOpFrX-OI-AADBA-f78d&t=Free-Wheeling+Leader">
</script>
Zitat: | Das Forum für den zum QBASIC kompatieblen open soure FreeBasic Kompiler. | by DJ. Peters |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 06.07.2006, 11:32 Titel: |
|
|
An dem Bildschirm schoner arbeite ich schon. Es gibt da nur ein problem:
Die 'aggregierten' pixel würden sich in eine röhre relativ schnell einbrennen...
Damit eignet sich das programm dann nicht mehr so gut. Ich arbeite deshalb an einem 'SS-Mode' bei dem die Farben im Puffer immer wieder wechseln. Da bräuchte ich nur einen möglichst schnellen weg um auf einer screen mit 24 bit tiefe die pixel im puffer zu ändern.
Vorschläge?
PS: Ich lade heute noch ein update herauf mit einigen verbesserungen und neuen modi. _________________ Danke an Volta für seine großartige MMX_fade function. *verneig*
Personal-DNA:
<script src="http://personaldna.com/h/?k=qtrCFboSuCOpFrX-OI-AADBA-f78d&t=Free-Wheeling+Leader">
</script>
Zitat: | Das Forum für den zum QBASIC kompatieblen open soure FreeBasic Kompiler. | by DJ. Peters |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 06.07.2006, 13:50 Titel: |
|
|
Zuerst den 32bit modus nehmen.
Dann könntest du die Pixel(nur weiß!!!) alle in einem Bildpuffer zeichnen, was du glaube ich schon machst. Darüber musst du dann einfach mit put alpha einen farbigen(z.B. blau) buffer legen, der dann als alphawert 150 oder so hat. |
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 06.07.2006, 14:05 Titel: |
|
|
Neue version heraufgeladen.
Moment.... *Link kopieren geh*
http://freebasic.de/fbnp/?view=454
Einige probleme noch:
TODO:
1) Mit echten winkeln arbeiten (cos, sin)
2) Farbige filter darüber legen.
3) CODE-Clean-Up!
4) Kommentare _________________ Danke an Volta für seine großartige MMX_fade function. *verneig*
Personal-DNA:
<script src="http://personaldna.com/h/?k=qtrCFboSuCOpFrX-OI-AADBA-f78d&t=Free-Wheeling+Leader">
</script>
Zitat: | Das Forum für den zum QBASIC kompatieblen open soure FreeBasic Kompiler. | by DJ. Peters |
|
Nach oben |
|
 |
|