Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 14.07.2009, 15:24 Titel: Bildpuffer |
|
|
hallo zusammen,
ich wollte folgendes Fragen:
Wenn ich z.B. Linien zeichne, mit line, oder Bildpunkte setze mit pset, wird es irgendwo in einem Puffer gespeichert? |
|
Nach oben |
|
 |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 14.07.2009, 15:43 Titel: |
|
|
Oder wenn ich z.B. eine png Grafik oder eine jpeg Grafik lade, hängen die Daten dann auch irgendwo im Puffer.
Wie sieht dieser Puffer aus?
Liegt es z.B. so vor?
x1,y1 = RGB Wert
x2,y1 = RGB Wert usw.
für z.B. eine 200*200 Pixel Grafik.
Mit ImageDestroy zerstört man ja diesen Puffer wieder |
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 14.07.2009, 15:44 Titel: |
|
|
Jain. Du kannst zumindest Teile der GFX-ausgabe (aber auch die gesamte) mit GET in ne Variable packen, und manuell Puffern. Siehe dazu:
imagecreate
get
Und wenn du es kompliziert magst:
screenptr
(Damit kannst du auf den Framebuffer der Aktiven GFX-Seite zugreifen. Allerdings hab ich damit noch nicht geproggt und kenn mich dahingehend also nicht aus.
Mfg
The_Muh
/Edit:
Andy19312 hat Folgendes geschrieben: | Oder wenn ich z.B. eine png Grafik oder eine jpeg Grafik lade, hängen die Daten dann auch irgendwo im Puffer.
Wie sieht dieser Puffer aus?
Liegt es z.B. so vor?
x1,y1 = RGB Wert
x2,y1 = RGB Wert usw.
|
Nein, Das würde bei größeren Bildmaßen eindeutig den Ram sprengen. Genaueres kann dir Google sagen, oder öffne doch mal ne BMP-datei (oder nen anderes grafik-format) mit nem Texteditor. Allerdings gibt es ein Format das so gehandhabt wird: -> SVG
P.S.: Wenn du ne grafik pixel für pixel editieren willst, nutz doch einfach PSET _________________ // nicht mehr aktiv // |
|
Nach oben |
|
 |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 14.07.2009, 16:04 Titel: |
|
|
dim Zielpuffer(1) as integer
GET (1, 1)-(1, 1), ZielPuffer(1)
print Zielpuffer(1)
leider bekomme ich mit print Zielpuffer(1) überhautp nix angezeigt |
|
Nach oben |
|
 |
Löwenherz

Anmeldungsdatum: 25.08.2008 Beiträge: 86 Wohnort: auf einer sonnigen Insel :)
|
Verfasst am: 14.07.2009, 16:32 Titel: |
|
|
hi andy,
ich bekomme bei meinem simplen Beispiel "7" heraus...
Code: | screen 14,32
dim Zielpuffer(1) as integer
GET (0, 0)-(1, 1), ZielPuffer(1)
print Zielpuffer(1)
sleep 50
getkey |
hat also geklappt... was läuft bei dir nicht richtig ?
liebe grüße, löwenherz _________________ Das Leben ist wie eine Pralinenschachtel, man weiß nie, was dort drinnen für tolle wie böse Überraschungen stecken |
|
Nach oben |
|
 |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 14.07.2009, 17:52 Titel: |
|
|
#include once "jpeg4fb.bas"
SCREEN 14,32
dim bild(1) as any ptr
dim dateiname as string
DIM Zielpuffer(1) AS INTEGER
dateiname = "c:\city.jpg"
bild(1) = jpegget(dateiname)
Put (0,0),bild(1),Pset
GET bild(1),(1, 1)-(1, 1), ZielPuffer(1)
PRINT Zielpuffer(1)
sleep
ich bekomme immer nur 7 heraus, warum das |
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 14.07.2009, 17:57 Titel: |
|
|
Vielleicht solltest du mal PUT probieren ?!?!  _________________ // nicht mehr aktiv // |
|
Nach oben |
|
 |
Löwenherz

Anmeldungsdatum: 25.08.2008 Beiträge: 86 Wohnort: auf einer sonnigen Insel :)
|
Verfasst am: 14.07.2009, 20:21 Titel: |
|
|
hi andy, kleiner Versuch, probier nur mal, ob das bei dir klappt
Code: | #include "jpeg4fb.bas"
Screen 19, 32
Dim As Any Ptr image = jpegget("city.jpg")
If jpegerr Then Print printerror : Sleep : End
Put (5, 5), image, Pset
If image <> 0 Then Imagedestroy image
Sleep
jpeg2screen( "city.jpg" )
If jpegerr Then Print printerror
'Put (15, 15), image, Pset
sleep |
bei mir ist das völlig ok
grüße, löwenherz _________________ Das Leben ist wie eine Pralinenschachtel, man weiß nie, was dort drinnen für tolle wie böse Überraschungen stecken |
|
Nach oben |
|
 |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 14.07.2009, 20:29 Titel: |
|
|
Erstmal danke an euch, das ihr mir probiert zu helfen, aber ich glaube ihr versteht mich falsch.
Was ich machen will "ich versuch es nochmal zu erklären", ist folgendes:
Grafik erstmal auf das Display bringen:
#include once "jpeg4fb.bas"
SCREEN 14,32
dim bild(1) as any ptr
dim dateiname as string
DIM Zielpuffer(1) AS uinteger
dateiname = "c:\city.jpg"
bild(1) = jpegget(dateiname)
Put (0,0),bild(1),Pset
sleep
anschliessend will ich, dass ich z.B. vom Pixel 1,
also bei x1 und y1 den RGB herausfinde.
Diese ganzen RGB Werte des kompletten Bildes benötige ich, da ich eine Überwachungskamera zwar schon am laufen habe, aber ich noch nicht auf
Ereignisse reagieren kann.
Ereignisse: Jemand läuft durchs Bild, Licht geht an usw.
Bei solch einem Ereignis, sollte das Programm drauf reagieren und dann Alarm auslösen.
Daher benötige ich von jedem Pixel des Bildes ein RGB Wert, so dass ich bei einer Abweichung um einen gewissen Prozentsatz im gesamten Bild drauf reagieren kann
EDIT: Ich bekomme es jedenfalls mit get und put nicht hin, sorry.
cu Andy |
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 14.07.2009, 21:11 Titel: |
|
|
Warum sagst du das nicht gleich?
POINT sollte dir helfen, wird aber recht langsam sein, wenn du damit nen komplettes bild abtastest. _________________ // nicht mehr aktiv // |
|
Nach oben |
|
 |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 14.07.2009, 22:46 Titel: |
|
|
Code: |
#include once "jpeg4fb.bas"
SCREEN 14,32
dim bild(1) as any ptr
dim dateiname as string
DIM Zielpuffer(1) AS uinteger
dim a as uinteger
dateiname = "c:\city.jpg"
bild(1) = jpegget(dateiname)
Put (0,0),bild(1),Pset
a = POINT(80, 2 )
print a
sleep
|
Wenn ich das aufrufe, dann habe ich 10 Zeichen mit einem Wert.
Wie weiss ich jetzt aber, den RGB Wert? |
|
Nach oben |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 565 Wohnort: Jüterbog
|
|
Nach oben |
|
 |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 14.07.2009, 23:28 Titel: |
|
|
Schon läuft die Sache
Ich wollte mich noch bei allen, für die Hilfestellung bedanken.
Cu Andy.
Der Code:
Code: |
#include once "jpeg4fb.bas"
SCREEN 14,32
dim bild(1) as any ptr
dim dateiname as string
DIM Zielpuffer(1) AS uinteger
dim Farbe as uinteger
dim hexen as string
dim hexena as integer
dim R as integer
dim G as integer
dim B as integer
dim hex1 as string
dim hex2 as string
dim hex3 as string
dateiname = "c:\city.jpg"
bild(1) = jpegget(dateiname)
Put (110,0),bild(1),Pset
Farbe = POINT(130, 40,bild(1))
print "Ausgangswert"
print Farbe
print
R = (Farbe AND &HFF0000) SHR 16
hex1 = hex(R,2)
G = (Farbe AND &H00FF00) SHR 8
hex2 = hex(G,2)
B = (Farbe AND &H0000FF)
hex3 = hex(B,2)
print "RGB Werte"
print
print "rot =";R
print "gruen =";G
print "blau =";B
print
print
print "HEX Werte"
print
print "rot =";hex1
print "gruen =";hex2
print "blau =";hex3
hexen = "&h"+hex1+hex2+hex3
hexena = val(hexen)
COLOR hexena, &h000000
print
locate 23,1
print "So sieht die Farbe dann aus ;-)"
sleep
|
|
|
Nach oben |
|
 |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 15.07.2009, 17:33 Titel: Webcame |
|
|
Jetzt stellt sich aber schon die nächste Frage:
Wie kann ich auf die Webcam zugreifen.
Sprich ich will in gewissen Zeitintervallen Bilder von der Webcame holen und als jpg Datei speichern.
Geht das... |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 15.07.2009, 17:46 Titel: |
|
|
Ja, das geht, aber such doch mal, das Thema hatten wir schon einige Male. _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 16.07.2009, 14:49 Titel: |
|
|
Code: |
shell "irgendein_tolles_webcam_programm.exe --save-to-file --filename="+dein_dateiname+" --camera=default"
|
_________________ MFG
Flo
Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.
zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich. |
|
Nach oben |
|
 |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 17.07.2009, 17:52 Titel: |
|
|
das funktioniert?
Achso, ich bräuchte echt nur eine kleine Lösung, um ein Bild von der Webcame zu holen.
Welche ich im Forum finde, sind recht kompliziert finde ich |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 17.07.2009, 18:27 Titel: |
|
|
kommt auf deine version von "irgendein_tolles_webcam_programm.exe" an
AFAIK gibt's dafür unter Windows aber sogar ne schnittstelle. google ist dein freund. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 17.07.2009, 18:27 Titel: |
|
|
Das liegt daran, weil es 1000000000000000000000000 varianten von Webcam's gibt.
Welche mti Netzwerkanschluss, welche als FBAS, welche mti USB, Firewire, ....
Dann können die Cam's auch unterschiedlcihe auflösugnen
haben mikro oder nicht, n lautsprecher, eventuell ne steuerung zum drehen, ..............
Diese ganzen unterschiedlichen funktionen bereit zus tellen ist nicht einfach
darum baut man einen "treiber" der das ganze vereinfacht.
Einen Treiber anzusprechen ist zwar einfacher als alle varianten im programm zu integireren, dafür ist ein treiber meist mit einer allgemein gültigen, udn geregelten schnittstelle ausgestattet, so das das programm, egal welcher treiber für die cam, das ist, immer die selben fuktionen nutzen kann.
der treiber unterstützt allerdings alle funktionen, wie auflösung, usw.
das kann man nun mal nicht "kompackter" machen.
Ein bisschen arbeit solltest du dir schon machen, wenn du Programmieren willst. Nicht für alles gibt es fertige lösugnen, die auf das zugeschnitten sidn, was DU willst / brauchst.
Dinge, die für JEDEN brauchbar sind, sind meist sehr komplex, udn haben viele variationsmöglichkeiten.
Willst du ws "kompacktes" udn einfaches, dann musst du das nunmal selbst (besser) machen.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 18.07.2009, 17:42 Titel: |
|
|
Hi Andy19312
Evtl. hilft dir dieses hier:
http://www.freebasic-portal.de/index.php?s=code&id=146 _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
|