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:

Fragen zum laden/anzeigen von bildern

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 26.06.2005, 21:43    Titel: Fragen zum laden/anzeigen von bildern Antworten mit Zitat

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. lachen

Mfg
Michael
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Devilkevin
aka Kerstin


Anmeldungsdatum: 11.11.2004
Beiträge: 2532
Wohnort: nähe Mannheim

BeitragVerfasst am: 26.06.2005, 21:46    Titel: Re: Fragen zum laden/anzeigen von bildern Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 27.06.2005, 14:21    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 27.06.2005, 14:34    Titel: Antworten mit Zitat

Schneid dir doch mit einem Grafikprogramm den Teile des Bildes heraus,
den du brauchst, und speichere es dann seperat ab zwinkern

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

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

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
Benutzer-Profile anzeigen Private Nachricht senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 27.06.2005, 15:48    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 06.07.2005, 19:59    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 06.07.2005, 20:08    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 06.07.2005, 21:08    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 06.07.2005, 21:30    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 07.07.2005, 10:34    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 07.07.2005, 11:28    Titel: Antworten mit Zitat

int() schneidet aber die Nachkommastellen ab. -> es verfälscht den Wert.
Versuch's mal ohne.

jb
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 FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
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