Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 26.06.2005, 21:43 Titel: Fragen zum laden/anzeigen von bildern |
|
|
Hallo.
Frage1:
Wie kann man ein bestimmten teil eines bmp bildes laden?? Wenn man ein bild mit bload öffnet, dann hat man das ja komplett. Mit put kann man ein bild aus einem array auch nur ab einer position laden. Ich möchte aber einen teil des bildes laden. Z.b.: bild 1024*768: daraus möchte ich ab x-position 200 bis x-position 900 alles laden und anzeigen. Nichts darüber hinweg. Geht das?? Ich habe schon erfolglos probiert, ein teil des arrays zu übertragen.
Frage2:
Kann man auch andere bilder als bmps laden, dessen format weniger platz braucht?? Z.B.: jpg,png,....
Ich bedanke mich schon im Vorraus bei allen, die das schon gelesen haben(ich schreib ja immer so viel), besonders bei denen, die mir helfen können.
Mfg
Michael |
|
Nach oben |
|
|
Devilkevin aka Kerstin
Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
Verfasst am: 26.06.2005, 21:46 Titel: Re: Fragen zum laden/anzeigen von bildern |
|
|
anfänger hat Folgendes geschrieben: |
Frage2:
Kann man auch andere bilder als bmps laden, dessen format weniger platz braucht?? Z.B.: jpg,png,....
|
Also mit BLOAD nicht.
Für JPEG's, Gifs etc. brauchst du eine Laderutine (wie in QBasic). _________________ www.piratenpartei.de |
|
Nach oben |
|
|
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 27.06.2005, 14:21 Titel: |
|
|
Danke, ich habs mir aber auch schon fast gedacht. Dann bleibe ich wohl bei bmps. Was ist denn mit meiner ersten frage?? Hat da einer eine idee?? Wie wärs mit Stormy?? Der hat doch schon ein spiel mit fb gemacht. Da sind auch bitmaps bei, wo mehrere bilder in einem drin sind, und die werden nacher einzeln angezeigt.
Mfg
Michael |
|
Nach oben |
|
|
jb
Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 27.06.2005, 14:34 Titel: |
|
|
Schneid dir doch mit einem Grafikprogramm den Teile des Bildes heraus,
den du brauchst, und speichere es dann seperat ab
jb |
|
Nach oben |
|
|
Dusky_Joe
Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 27.06.2005, 14:50 Titel: |
|
|
Spätestens seit Version 0.14 Geht das relativ einfach:
Code: |
DIM GanzesBild AS ANY PTR
DIM TeilBild AS ANY PTR
GanzesBild = IMAGECREATE(x, y) ' hier die Größe des Bildes einsetzen
TeilBild = IMAGECREATE(KleinX, KleinY) ' hier die Größe des Teilbildes
'einsetzen
BLOAD "Deinbild.bmp", GanzesBild
GET GanzesBild, (StartX, StartY)-(ZielX, ZielY), TeilBild
PUT (ZeigeX, ZeigeY), TeilBild, PSET
IMAGEDESTROY GanzesBild
IMAGEDESTROY TeilBild |
Get liest dann erst aus dem Puffer GanzesBild, und schreibt in TeilBild.
Ebenso kansnt du dein Bild vorher noch bearbeiten:
Code: | CIRCLE TeilBild, (x, y), 20 |
Wichtig ist, dass deine Puffer groß genug sind, da sonst ein Fehler erzeugt wird. Normalerweise kommt dann die Meldung "[dein Programmname].exe wurde aufgrund eines ungültigen Befehls beendet."
Außerdem solltest du die Puffer auch wieder mit IMAGEDESTROY löschen, um den Speicher freizugeben; das geschieht aber (normalerweise) mit beenden des Programms automatisch.
Siehe auch die Befehlsreferenz (neueste Version)
Dort wird IMAGECREATE/DESTROY bereits erklärt, genauso wie die Bearbeitung von Puffern mit den Drawing Primitives.
(Allerdings nur sehr flüchtig, eine genaue Erklärung habe ich mir für die Gfx.html vorgenommen.) _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
|
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 27.06.2005, 15:48 Titel: |
|
|
DANKE!!! Dann saug ich mir vorerst mal die Testversion von 1.4 und teste das mal. Ich hoffe, dass es klappt, denn ich habe kein bock, eine animation in 20 dateien zu speichern. Das geht dann in einer datei übersichtlicher. THX@all[/quote] |
|
Nach oben |
|
|
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 06.07.2005, 19:59 Titel: |
|
|
Noch ne Frage: Wie kann man die Helligkeit von bildern regeln?? Ich möchte, dass etwas auf dem Bildschirm dunkler dargestellt wird. Das bild wird aus einer bmp datei erstellt. Geht das so einfach oder muss man da ne lib für verwenden????
PLease help.
Mfg
Michael _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 06.07.2005, 20:08 Titel: |
|
|
einfach r g und b-wert jedes Pixels mit ner zahl kleiner als 1 multiplizieren. 0,5 = halb so hell (50%), 0,25 = ein viertel so hell (25) etc.
Geht auch andersrum, also 1,5 = hälfte heller (150%). _________________ "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: 06.07.2005, 21:08 Titel: |
|
|
Danke, aber ich hab eben schonmal einen Pixel (farbe &H3333FF) ausgelesen und den mit 0.9 mulzipliziert. Also hab ich &H3333FF*0.9 gerechnet. Da kam dann aber inner do:loop schleife so ne ganz komische farbe raus. Mal pink, mal grün und mal rot. Muss ich da jetzt immmer 2 ziffern mit 0.9 mulziplizieren??(also &H33*0.9, &H33*0.9, &HFF*0.9)
Mfg
Michael _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 06.07.2005, 21:30 Titel: |
|
|
eigentlich müsste da das selbe rauskommen...
Versuchs halt mal getrennt.. _________________ "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: 07.07.2005, 10:34 Titel: |
|
|
Wie kann man die denn getrennt verändern?? Ich poste mal einen test-code von mir. Kann den bitte einer so verändern, dass das klappt??
Code: |
screen 20,32,,1
Dim bild as any ptr
bild = imagecreate(1024,768)
bload "C:\test.bmp",bild
put (0,0),bild
do
for x = 1 to 1024
for y = 1 to 768
pset (x,y),int(point(x,y)*0.9)
next y
next x
sleep
loop until inkey$=CHR$(27)
|
Was mach ich da falsch?? Das int in dem pset befehl hatte ich vorher nicht. Ich habs aber mal gemacht, weil ich gedacht habe, dass ja eine komma zahl entstehen könnte, die alles versaut. Bitte helft mir.
Mfg
Michael _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
|
jb
Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 07.07.2005, 11:28 Titel: |
|
|
int() schneidet aber die Nachkommastellen ab. -> es verfälscht den Wert.
Versuch's mal ohne.
jb |
|
Nach oben |
|
|
|