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:

Grafiklib selbst machen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Bibliotheken
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
noop



Anmeldungsdatum: 04.05.2005
Beiträge: 259

BeitragVerfasst am: 05.02.2006, 14:11    Titel: Grafiklib selbst machen Antworten mit Zitat

Hallo
Ich hab mal versucht das mir eine lib ein .bmp-Bild öffnet und auf den Bildschirm bringt. Allerdings kommt das nicht ins Fenster in das es soll.
Also mal ein Bsp.:
Screen 20,32
bild$="c:\test.bmp"
bloadlib(bild)
So in etwa. Also die Datenübergabe funzt auch wunderbar aber das Bild erscheint halt nicht.
Dafür muss ich in der lib selbst eine Screen aufrufen.
Aber in den kann ich von meinem Programm dann wieder nicht reinmalen/schreiben.
Wie kann ich das also machen?

noop
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



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

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

a) bild ohne lib laden
oder
b) auch die malroutinen aus der lib benutzen
oder
c) versuchen, das mit der lib geladene bild mit PUT auf den bildschirm zu hacken
oder
d) ne andere lib nehmen.

ich empfehle a,b oder d..
_________________
"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: 05.02.2006, 17:50    Titel: Antworten mit Zitat

Hallo.

Das geht ganz einfach auch mit Screen:

Code:
Screen 20,32,,-1


So wird kein Fenster geöffnet, aber du kannst Bload etc. verwenden.

Michael
_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 05.02.2006, 17:59    Titel: Antworten mit Zitat

Also der Namen der Lib wäre Interresant, ohne ist es ein raten in's Blaue.

@programmierer
Liess bitte die Frage ...
Er will nicht das Fenster verstecken, sondern ein Bild in ein Fenster ausgeben ...
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1874
Wohnort: D59192

BeitragVerfasst am: 07.02.2006, 17:03    Titel: Bild aus einer BMP-Datei anzeigen Antworten mit Zitat

Bild aus einer BMP-Datei anzeigen.
Eine einfache Möglichkeit eine BMP-Bild-Datei anzuzeigen ist:
Code:
Screen 15,32      'Bit per Pixel = 32
BLoad "bruno.bmp" 'BMP-Datei anzeigen
Sleep

Das Bild wird in der linken oberen Ecke des Screens angezeigt und steht erstmal im weiteren Programm für eine Bearbeitung nicht zur Verfügung.

Eine der einfachsten Methoden in FB ein Bild auf den Screen zu positionieren ist mit Image - Anweisungen zu arbeiten.

imagepointer = IMAGECREATE (Breite, Höhe [, Farbe])
Damit wird ein Speicherbereich reserviert (Breite * Höhe) in dem ein Bild dieser Größe geladen werden kann. Der 'imagepointer' zeigt auf die erste reservierte Speicherstelle.
IMAGEDESTROY imagepointer
Gibt den reserviert Speicherbereich wieder frei.

Die Erklärungen hier sind sehr einfach gehalten.
Genaueres findest du in die Befehlsreferenz.

BMP in Image laden und anzeigen

Höhe und Breite des Bildes müssen uns hier vorher bekannt sein
Code:
Option Explicit
Dim img As Integer Ptr
Dim As Integer breit, hoch

Screen 18,32 'Bit per Pixel = 32
breit = 52   'Bildbreite und
hoch = 86    'Bildhöhe sind bekannt
img = ImageCreate (breit, hoch) 'Image bilden
BLoad "bruno.bmp",img           'BMP-Datei in das Image laden
Put (40, 50), img, PSet         'Image anzeigen
Print "mit Tastendruck geht’s weiter.. ";
Sleep

Print "kleiner Effekt!"
Put (100, 50), img, PSet 'Image anzeigen
'um einen Pixel nach rechts versetzt Image
'erneut mit XOR verknüpft anzeigen
Put (101, 50), img, Xor

Sleep
ImageDestroy img 'Image aus dem Speicher löschen
End

Der 'kleiner Effekt' ist hier nur ein Gag, es lohnt sich aber mit den PUT-Optionen zu
spielen. Schau dazu mal in die Befehlsreferenz.

Breite und Höhe des Bildes aus der BMP-Datei

Nicht immer sind Breite und Höhe vorher bekannt, man kann sie auch aus der BMP-Datei auslesen.
Code:
'Shared Variablen sind auch in Unterprogrammen nutzbar
Dim Shared As Integer breit, hoch
Dim As Integer Ptr img

'liest Breite und Höhe des Bildes aus der BMP-Datei
Function test_bmp (filename As String) As Integer
 Dim ff As Integer, ID As Short
 test_bmp = 0
 ff = FreeFile 
 Open filename For Binary Access Read As #ff
  If lof(ff) > 40 Then
    Get #ff,0,ID         'Test auf "BM" am Anfang der Datei
    If ID = asc("B") + (asc("M") shl 8) Then
      Get #ff, 19, breit 'Bildbreite
      Get #ff,, hoch     'Bildhöhe
      test_bmp = 1       'Werte gefunden
    End If
  End If
 Close #ff
End Function
Screen 15, 32 'Bit per Pixel = 32

If test_bmp("bruno.bmp") Then    'wenn Höhe und Breite gefunden wurden
 img = ImageCreate (breit, hoch) 'Image bilden
 BLoad "bruno.bmp",img           'BMP-Datei in das Image laden
 Put (10, 20), img, PSet         'Image anzeigen
Else
 Print "Keine BMP-Datei gefunden."
End If

Print "mit Tastendruck beenden.. ";
Sleep
'Image aus dem Speicher löschen, wenn es erstellt wurde.
If img > 0 Then ImageDestroy img
End

Eine Zip-Datei, in der die BAS- und BMP-Dateien enthalten sind, gibt es (demnächst) auf meiner Homepage.
Gruß
Volta
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
noop



Anmeldungsdatum: 04.05.2005
Beiträge: 259

BeitragVerfasst am: 23.02.2006, 13:25    Titel: Antworten mit Zitat

sry weinen weinen Kopf schütteln Kopf schütteln

Hatte was Stress inder Schule und hab vergessen, dass ich hier noch was am laufen hab...

So da bin ich aba wida.


Die lib mach ich selbst.
Das ist keine runtergeladene lib!
Das war auch nur ein Beispiel mit dem Bildladen.

Ich will vllt mal eine eigene Grafiktextlib machen.
An die soll dann Buchstabe/Ziffer,Buchstabengröße,X&Y-Koordinate und Farbe übergeben werden und die "malt" es dann auf den Bildschirm.

Wie ich normal ein bmp-Bild anzeige weiß ich, auch wie ich es bearbeiten kann. Damit hab ich in letzter Zeit relativ viel mit rumexperimentiert.
Und jetzt wollte ich das halt etwas automatisieren und in eine lib bringen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Bibliotheken 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