Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 21.08.2007, 10:14 Titel: BSave 'BMP' Fehler |
|
|
Hi, ich habe mal eine Frage zu folgenden Problem,
Das laden und speichern von .bmp grafiken unter FreeBASIC
mit BLoad und BSave ist ja im grunde ganz einfach und zeigte bisher auch
nie besondere probleme, bis jetzt.
Bei groesseren Bilder (100x100 oder so) funktioniert es fehlerfrei
nun habe ich aber vor gehabt kleinere Ausschnitte zu speichern, bekomme
aber dabei immer Pixelfehler....
Hier der Testcode:
Code: |
Screen 18,32
line (0,0)-(9,14),&hFF00FF,bf
Dim xyz as any ptr
xyz=imagecreate(10,15)
get (0,0)-(9,14),xyz
Bsave "testxyz.bmp",xyz
sleep
|
So sieht es dann aus, wenn ich es wieder lade...
 _________________
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4699 Wohnort: ~/
|
Verfasst am: 21.08.2007, 12:40 Titel: |
|
|
Ich habe das mal getestet und bekomme das Bild richtig gespeichert und auch wieder richtig geladen.
(fbc 0.17 aktuelles Release, Linux) _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 21.08.2007, 12:42 Titel: |
|
|
Bei diesem kurzem Beispiel kann mit den Pointern nichts passieren.
Und wie gesagt funktioniert es auch problemlos mit groesseren Buffern,
nur bei so kleinen wie bei deisem Beispiel hab ich immer oben links einen solchen kleinen 'Balken' in der BMP
Edit:
werd mir mal das UPDate laden, hatte vor kurzem FBC 0.17b geDownDated vielleicht liegt es ja daran
Edit:
Mit FBC 0.18 das gleiche...  _________________

Zuletzt bearbeitet von Eternal_pain am 21.08.2007, 12:47, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4699 Wohnort: ~/
|
Verfasst am: 21.08.2007, 12:47 Titel: |
|
|
Die 0.17 beta hatte durchaus noch ein paar Macken, aber wahrscheinlich hieß sie deshalb auch beta. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 21.08.2007, 13:09 Titel: |
|
|
nemored hat Folgendes geschrieben: | Die 0.17 beta hatte durchaus noch ein paar Macken, aber wahrscheinlich hieß sie deshalb auch beta. |
Alle sind beta Versionen, es gibt nur den unterschied zwischen stable und testing, mehr net  _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4699 Wohnort: ~/
|
Verfasst am: 21.08.2007, 14:54 Titel: |
|
|
Dann muss ich wohl 'beta' durch 'testing' ersetzen.
(dabei dachte ich früher, beta würde bedeuten, dass sich das Programm in der öffentlichen Testphase befindet ...) _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 21.08.2007, 17:58 Titel: |
|
|
Beta ist nur eine Ausrede für Bugs
(nicht meine Meinung, stammt von einem, der hier im Forum Götterspeise als Avatar hat ) _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 21.08.2007, 19:50 Titel: |
|
|
- bringt es etwas, die farbtiefe des SCREENs zu verändern?
- bringt es etwas, ANY durch UBYTE zu ersetzen? _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 21.08.2007, 20:54 Titel: |
|
|
Hi,
genau wie nemored habe ich bei mir den Fehler in FB0.17 und FB0.18.1 nicht.
Was man aus deiner Abbildung nicht erkennen kann:
ist das Bild in der Wiedergabe 10 x 15 Pixel ?
Sonst schau dir die testxyz.bmp mal mit einem HexEditor an.
Falsche Werte in der Datei?
oder falsch angezeigt? _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 22.08.2007, 23:31 Titel: |
|
|
Ich konnte inzwischen feststellen das PhotoFiltre offensichtlich ein Problem mit den von FreeBASIC abgespeicherten BMP Dateien zu haben scheint, wenn auch nur bei kleinen...
Mit einem anderen Grafikprogramm wird die kleine Grafik vollkommen korrekt dargestellt.... _________________
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 23.08.2007, 16:36 Titel: |
|
|
versuche mal, eine gerade zahl von pixeln zu nehmen, also z.B. 16 statt 15. PhotoFiltre hat schon einige Bugs gehabt, die mit ungeraden Pixelzahlen zu tun gehabt haben.  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 24.08.2007, 14:58 Titel: |
|
|
es geht schon wieder was nicht und ich seh den fehler einfach nicht
Code: |
#include "vbcompat.bi"
Type BMPInf
Filename as String
Breit as Integer
Hoch as Integer
End Type
Dim Shared Font(0 to 255) as BMPInf
Dim Shared Path as String
Dim Shared FontName as String
Dim Shared FileName as String
''Enter HERE!!!! Path and Fontname!!!
'Path=[string]
'FontName=[string]
Path="D:\FreeBASIC\SSFmcf1"
FontName="SSFmcf1"
Sub getBMPSize (byval Filename as String, byref bmp_W as Integer, byref bmp_H as Integer)
Dim As Integer FF = Freefile
Open FileName For Binary As #FF
Get #FF, 19, bmp_W
Get #FF, 23, bmp_H
Close #FF
End Sub
for l as integer=0 to 255
Filename=Path+"\"+Str(l)+".bmp"
If FileExists(FileName)=0 Then
?FileName+" changed to x"
Filename=Path+"\x.bmp"
End If
With Font(l)
.Filename = Filename
getBMPSize (Filename,.Breit,.Hoch)
End With
next l
''Maximale Breite = MaxBreit
''Maximale Hoehe = MaxHoch
Dim MaxBreit as integer=0
Dim MaxHoch as integer=0
for l as integer=0 to 255
With Font(l)
If .Breit > MaxBreit Then MaxBreit = .Breit
If .Hoch > MaxHoch Then MaxHoch = .Hoch
End With
next l
''
''
?"Convert "+STR(MaxBreit)+" "+Str(MaxHoch)
Dim as ubyte ptr FontBuffer
FontBuffer=ImageCreate(MaxBreit*256,MaxHoch)
Dim as any ptr CharBuffer
for l as integer=0 to 255
CharBuffer=ImageCreate(MaxBreit,MaxHoch)
BLoad Font(l).Filename,CharBuffer
Put FontBuffer,(l*MaxBreit,0),CharBuffer,pset
ImageDestroy(CharBuffer)
next l
?"Save new BMP"
sleep
BSave ("xyzabc.bmp"),FontBuffer
ImageDestroy(FontBuffer)
?"Ready."
sleep
|
der ganze Code funktioniert wunderbar und macht soweit ich das sagen kann, alles was er soll... bis zum BSave, da stuerzt das Programm weg und hinterlaesst eine leere 0 byte "xyzabc.bmp".
why????  _________________
 |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 24.08.2007, 15:39 Titel: |
|
|
hmm,
prüfe mal den Pointer vorher:
Code: | ...
?"Save new BMP"
sleep
if FontBuffer =0 then
?"Fehler"
else
BSave "xyzabc.bmp", FontBuffer
?"Ready"
end if
sleep
if FontBuffer <> 0 then ImageDestroy(FontBuffer)
end |
_________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 24.08.2007, 15:49 Titel: |
|
|
Hab dank _Michael_ den Fehler bereits gefunden, der fehler war das ich kein Screen Initialisiert habe und damit die buffer nicht richtig erstellt wurden  _________________
 |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 24.08.2007, 17:02 Titel: |
|
|
.. ..  _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
|