Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
OdinX
Anmeldungsdatum: 29.07.2005 Beiträge: 253 Wohnort: SG Schweiz
|
Verfasst am: 28.08.2005, 16:15 Titel: bild in FB anzeigen |
|
|
warum geht dieser code nicht?
Code: | DECLARE SUB BildAnzeigen(Pfad AS STRING,Breite AS INTEGER,Hoehe AS INTEGER, X AS INTEGER, Y AS INTEGER, Farbtiefe AS INTEGER)
SCREEN 20
CALL BildAnzeigen ("aaa.bmp",128,128,100,100,24)
SYSTEM
SUB BildAnzeigen (Pfad AS STRING,Breite AS INTEGER,Hoehe AS INTEGER, X AS INTEGER, Y AS INTEGER, Farbtiefe AS INTEGER)
DateiGroesse = (X * Y * (2^Farbtiefe))
DIM Bild(DateiGroesse) AS UBYTE
BLOAD Pfad, VARPTR(bild(0))
PUT (X,Y), bild,PSET
END SUB
|
wenn ich das starte kommt:
WindowsXP hat Folgendes geschrieben: | fbidetemp.exe hat ein Problem festgestellt und muss beendet werden. |
kann mir einer sagen was falsch ist? |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 28.08.2005, 16:41 Titel: |
|
|
Hallo.
Die Koordinaten spielen für den Speicherbedarf eines Bildes keine Rolle. Das bedeutet, X*Y*.. ist unerheblich. Wenn schon Breite*Hoehe*... Außerdem darfst du bei Farbtiefe nicht 24 für 24Bit übergeben, sondern nur 3 (24/8=3). Ansonsten werden deine Bilder leicht einige Terrabytes groß. Ob das ^ stimmt, kann ich dir nicht genau sagen,aber ich würd eher ein einfaches * nehmen, also Groesse#=Hoehe%*Breite%*Farbtiefe%, ergäbe bei einem 24Bit 600x600 Pixel Bild ein knappes MB.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 28.08.2005, 18:47 Titel: |
|
|
Hallo.
Ab version 0.14 gibt es eine function, die einiges an Arbeit abnimmt. Anstatt dim bild(hoehe*breite.... einfach:
Code: |
dim bild as any ptr
bild = IMAGECREATE(hoehe,breite)
BLOAD "D:\test.bmp",bild
put x,y,bild,pset
|
vieeel einfacher als dein code.
Mfg
Michael |
|
Nach oben |
|
|
jb
Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 28.08.2005, 18:49 Titel: |
|
|
Aber nachher noch imagedestroy anwenden, um den Speicher wieder freizugeben.
jb |
|
Nach oben |
|
|
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 28.08.2005, 19:18 Titel: |
|
|
Oh. Gut das du das sagst. Hab garnicht mehr daran gedacht, dass es die function gibt. Ich hab mich schon gewundert, dass ein Prog von mir(nachmache von icq, noch nicht fertig) nach einiger zeit so ca. 100mb Arbeitsspeicher braucht.
danke, dass du mich darauf aufmerksam gemacht hast.
Mfg
Michael |
|
Nach oben |
|
|
OdinX
Anmeldungsdatum: 29.07.2005 Beiträge: 253 Wohnort: SG Schweiz
|
Verfasst am: 28.08.2005, 19:36 Titel: |
|
|
danke für all eure antworten.
werd eure tips mal ausprobieren und wenns nicht funktioniert schreib ich wieder hier rein.
mfg OdinX |
|
Nach oben |
|
|
jb
Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 28.08.2005, 20:12 Titel: |
|
|
@anfänger: Kein Problem
jb |
|
Nach oben |
|
|
OdinX
Anmeldungsdatum: 29.07.2005 Beiträge: 253 Wohnort: SG Schweiz
|
Verfasst am: 28.08.2005, 20:17 Titel: |
|
|
Habe Version 0.13 installiert gehabt.
Jetzt hab ich 0.14 gedownloadet, entzippt und alle Dateien in meinem Freebasic verzeichnis durch die gerade entzippten ersetzt.
Diese neuen Funktionen die ich jetzt haben sollte funzen aber trotzdem nicht.
hab ich irgend ein fehler bei der installation gemacht? oder was ist da los?
danke im voraus
OdinX |
|
Nach oben |
|
|
Devilkevin aka Kerstin
Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
Verfasst am: 28.08.2005, 20:34 Titel: |
|
|
Ich mach das ganze so (funzt ab Version 0.14)
Code: | DIM image(307204) AS UBYTE
SCREEN 18
BLOAD "bild.bmp", VARPTR(image(0))
put(1,1),image |
Sollte allerdings ne 256 Farben BMP sein. _________________ www.piratenpartei.de |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
jb
Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 28.08.2005, 20:47 Titel: |
|
|
@ dk: Aber mit IMAGECREATE kann man auch mit den Drawing Primitives auf das Feld zugreifen, was bei deiner
Methode wohl eher nicht geht.
jb |
|
Nach oben |
|
|
OdinX
Anmeldungsdatum: 29.07.2005 Beiträge: 253 Wohnort: SG Schweiz
|
Verfasst am: 30.08.2005, 14:29 Titel: |
|
|
habs jetzt mal versucht und es geht immer noch nicht.
hab die dateien von v0.14 gedownloadet, die alten dateien gelöscht, die neuen hereinkopiert und die installationsbatchdatei ausgeführt.
IMAGECREATE & IMAGEDESTROY erkennt er aber trotzdem nicht.
wie kann das sein.
Code: | DECLARE SUB BildAnzeigen(Pfad AS STRING,Breite AS INTEGER,Hoehe AS INTEGER, X AS INTEGER, Y AS INTEGER)
SCREEN 20
CALL BildAnzeigen ("aaa.bmp",128,128,100,100)
SYSTEM
SUB BildAnzeigen (Pfad AS STRING,Breite AS INTEGER,Hoehe AS INTEGER, X AS INTEGER, Y AS INTEGER)
DIM Bild AS ANY PTR
Bild = IMAGECREATE(Hoehe, Breite)
BLOAD Pfad, Bild
PUT (X,Y), Bild,PSET
IMAGEDESTROY
END SUB |
|
|
Nach oben |
|
|
jb
Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 31.08.2005, 15:31 Titel: |
|
|
Putz doch noch mal alles von FB runter, und installiere alles nochmal.
jb |
|
Nach oben |
|
|
OdinX
Anmeldungsdatum: 29.07.2005 Beiträge: 253 Wohnort: SG Schweiz
|
Verfasst am: 31.08.2005, 21:19 Titel: |
|
|
hab ich schon drei mal gemacht |
|
Nach oben |
|
|
Quark48
Anmeldungsdatum: 16.10.2004 Beiträge: 559 Wohnort: Saltendorf a.d. Naab bzw. Teublitz i.d. Oberpfalz / Bayern
|
Verfasst am: 31.08.2005, 21:24 Titel: |
|
|
Hallöle!
Ich würd halt einfach
Code: | IMAGEDESTROY image(307204) |
schreiben rofl - klar dass es nicht geht. Die Funktion muss ja wissen, was sie löschen soll _________________ Grüßle, Stefan
***
Wenn ein Programm auf nem alten Rechner gut läuft, dann läuft´s auf nem neuen erst recht!
Ich habe/hatte keine feste Spange und auch keine Schwester. Der Rest stimmt. Es tut mir leid... :-/ |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
OdinX
Anmeldungsdatum: 29.07.2005 Beiträge: 253 Wohnort: SG Schweiz
|
Verfasst am: 01.09.2005, 13:26 Titel: |
|
|
Jipiiiiii!!! Es gibt keinen Error mehr.
aber anstatt dem Bild wird Ein schwarzes Quadrat angezeigt.
weiss noch einer wie ich das behebe?
dannl hätt ich das ganze endlich hinter mir |
|
Nach oben |
|
|
Quark48
Anmeldungsdatum: 16.10.2004 Beiträge: 559 Wohnort: Saltendorf a.d. Naab bzw. Teublitz i.d. Oberpfalz / Bayern
|
Verfasst am: 01.09.2005, 13:30 Titel: |
|
|
Hmm... Also wenn du bei der Bilddateiangabe im Programm z.B. einfach "Bild.bmp" schreibst, lädt er das Bild nur, wenn es im gleichen Ordner wie das Programm ist. _________________ Grüßle, Stefan
***
Wenn ein Programm auf nem alten Rechner gut läuft, dann läuft´s auf nem neuen erst recht!
Ich habe/hatte keine feste Spange und auch keine Schwester. Der Rest stimmt. Es tut mir leid... :-/ |
|
Nach oben |
|
|
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 01.09.2005, 14:28 Titel: |
|
|
Hallo.
Kann auch daran liegen:
durch
ersetzen. Dann biste im 32bit Farbmodus. Sont evtl nur im 16/8 bit?
Mfg
Michael |
|
Nach oben |
|
|
Bernd
Anmeldungsdatum: 14.09.2004 Beiträge: 498 Wohnort: Kulmbach
|
Verfasst am: 01.09.2005, 14:39 Titel: |
|
|
Hm, des hat FB öfters, oft hilft einfach ein neustart der IDE, aber frag mich ned warum *g* _________________ Neue Homepage: http://www.glubb.rockt.de
UND
Der Wahnsinn hat seine eigene Homepage: http://pulmollwand.rulz.de |
|
Nach oben |
|
|
|