Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
freeludwig
Anmeldungsdatum: 06.12.2007 Beiträge: 19
|
Verfasst am: 06.02.2008, 13:57 Titel: Foto im Programm |
|
|
Hallo Freunde, können Sie mir hilfen bitte? Ich möchte im Programm das Foto oder das Bild haben, aber ich weiss nicht wo aus.
z.B.
screen 20,32
bload "xy.bmp"
Das ist gut, aber nur für Bild 1024x768.
Mein Ziel ist solcher: Screen 1024x768, aber das Foto oder das Bild nur z.B. 90x40 in der Ecke. Es ist möglich?
screen 20,32
bload "xy.bmp"
+ setscreen,window,view??
Ich weiss nicht. Aber diese Funktionen dafür funktionieren nicht...
Danke schön allem!
F. |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 06.02.2008, 15:33 Titel: |
|
|
Dazu hat Volta ein schönes Tutorial erstellt:
http://www.freebasic-portal.de/index.php?s=tutorials&id=16&seite=1
Code: | Screen 18,32
'Damit brauchst du den Dateinamen nur einmal angeben
Dim As String dateiname = "deinBild.bmp"
Dim As Integer breit, hoch 'darin speichern wir die Werte ab
Dim As Integer ff = Freefile 'Anfrage welcher Übertragungsweg ist frei?
Open dateiname For Input As #ff 'öffne die Datei zum lesen
Get #ff, 19, breit 'Breite aus der BMP-Datei auslesen
Get #ff, 23, hoch 'Höhe aus der BMP-Datei auslesen
Close #ff 'schließe die Datei
Dim bild As Any Ptr 'Zeiger erstellen der die Bildadresse speichert
bild = ImageCreate(breit,hoch) 'reserviert und berechnet den erforderlichen Speicher
'und gibt an den Zeiger die Adresse des reservierten Speichers.
Bload dateiname, bild 'lade das Bild in den Speicher, der Zeiger 'bild' hat die Adresse.
Put (100,100), bild 'Das geladene Bild ab Position (x, y) im Fenster anzeigen
Sleep |
(geht natürlich auch mit anderer SCREEN-Angabe und an anderer Bildschirmposition)
Nicht vergessen, am Schluss ein IMAGEDESTROY durchzuführen! _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
freeludwig
Anmeldungsdatum: 06.12.2007 Beiträge: 19
|
Verfasst am: 07.02.2008, 13:38 Titel: |
|
|
Danke schön! Schon alles geht! Danke, F. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 07.02.2008, 13:55 Titel: |
|
|
Danke @nemored,
für den Hinweis Zitat: | Nicht vergessen, am Schluss ein IMAGEDESTROY durchzuführen! | ich habe es gleich ins Tut eingebaut . _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
freeludwig
Anmeldungsdatum: 06.12.2007 Beiträge: 19
|
Verfasst am: 11.02.2008, 14:42 Titel: |
|
|
Mir das funktionieren auch ohne IMAGEDESTROY. Kein Problem forläufig. Warum benutzen ImageDestroy eigentlich? |
|
Nach oben |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
Verfasst am: 11.02.2008, 14:48 Titel: |
|
|
ImageCreate = Speicher allokieren
ImageDestroy = Speicher freigeben
Wenn du dein Programm beendest, wird automatisch über das Betriebssystem der Speicher freigegeben. Wenn dein Programm allerdings zur Laufzeit immer viel Speicher allokierst, aber nicht freigibt, wird dir irgendwann der Speicher ausgehen. _________________ +++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial |
|
Nach oben |
|
 |
freeludwig
Anmeldungsdatum: 06.12.2007 Beiträge: 19
|
Verfasst am: 12.02.2008, 17:31 Titel: |
|
|
Stormy hat Folgendes geschrieben: | ImageCreate = Speicher allokieren
ImageDestroy = Speicher freigeben
Wenn du dein Programm beendest, wird automatisch über das Betriebssystem der Speicher freigegeben. Wenn dein Programm allerdings zur Laufzeit immer viel Speicher allokierst, aber nicht freigibt, wird dir irgendwann der Speicher ausgehen. |
o.k., danke, ich verstehe... Aber dann ist also möglich IMAGEDESTROY benutzen ganz legitim erst und nur zum Ende Programm, oder nicht?
Z.B. Erst, wenn ein Mensch wählt QUIT = dort wird IMAGEDESTROY benutzte. |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 12.02.2008, 17:52 Titel: |
|
|
Das ist legitim, aber kein guter Programmstil. Man sollte grundsätzlich nur so viel Speicher allociieren, wie man auch benötigt, und alles andere möglichst bald wieder frei geben. Den Grund hat Stormy schon genannt. _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
 |
|