.jpg in TOPOS-PB

Anfängerfragen zum Programmieren mit PureBasic.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

kann ja mal passieren...

man sollte halt grundsätzlich erstmal in die Help gucken...

zum thema "Qualität von JPGs" schau dir mal den direkten vergleich an,
hatte ich mal in der Lounge gepostet:

http://www.purebasic-lounge.de/viewtopi ... 5118#35118
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Machete @PB
Beiträge: 81
Registriert: 12.09.2006 03:12

Beitrag von Machete @PB »

ok, aber könntest du bitte mal ein Beispielcode für ein loadjpegsprite schreiben? Bei mir funzt das wiedermal nicht so recht :freak:
Benutze Topos-PB-Version 3.3
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

du musst nur an der stelle, wo du vorher LoadSprite stehen hattest,
den neuen Befehl schreiben.

und natürlich musst du die Datei auch an der richtigen stelle haben.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Machete @PB
Beiträge: 81
Registriert: 12.09.2006 03:12

Beitrag von Machete @PB »

wenn ich das aber so mache kommt ein "x" in einem roten Kreis und "OK"

Code: Alles auswählen

If InitSprite()                                                
  MessageRequester("Fehler","Konnte dx nicht finden",0)           
  EndIf                                                             

If InitKeyboard()                                              
  MessageRequester("Fehler","Konnte dx nicht finden",0)            
  EndIf                                                             
If OpenScreen(800,600,32,"Vollbild") = 0                          
  MessageRequester("Fehler","Konnte kein Vollbild erstellen ",0)  
EndIf                                                             

LoadJPEGSprite(0,"GFX\Back.jpg",0)                                

Repeat                                                  
  FlipBuffers()                                         
  ClearScreen(255,0,0)                                  
  ExamineKeyboard()                                     
  DisplaySprite(0,0,0)                              
  DisplayTransparentSprite(0,400,100)                   
  If KeyboardPushed(#PB_Key_Escape)                     
    End                                                 
  EndIf                                                 
ForEver                                                 
 
sorry hatte den komischen Decoder noch drinne.
Jetzt kommt 2 mal: konnte dx nicht finden
Zuletzt geändert von Machete @PB am 29.09.2006 21:52, insgesamt 2-mal geändert.
Benutze Topos-PB-Version 3.3
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

also, mein 3.30 kennt kein

Code: Alles auswählen

UseEC_OLEImageDecoder() 
...was soll das eigentlich sein?

davon ab, das X in dem roten Kreis hat meistens noch nen text dabei,
und der ist aussagekräftiger als das X selber...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Machete @PB
Beiträge: 81
Registriert: 12.09.2006 03:12

Beitrag von Machete @PB »

das isses ja da war kein text, hat sich ja jetzt erledigt :allright:
Benutze Topos-PB-Version 3.3
Benutzeravatar
Machete @PB
Beiträge: 81
Registriert: 12.09.2006 03:12

Beitrag von Machete @PB »

Nach einigen Änderungen sieht der Code jetzt So aus:

Code: Alles auswählen

InitSprite() : InitKeyboard()                                              


Repeat
                                                              
 OpenScreen(1024,768,32,"Vollbild")                         
    
                                                             

LoadJPEGSprite(0,"GFX\Back.jpg",0)                                

                                                  
  FlipBuffers()                                         
  ClearScreen(0,0,0)                                  
  ExamineKeyboard()                                     
  DisplaySprite(0,0,0)                              
  
  DisplayTransparentSprite(0,400,100)                   
  Until  KeyboardPushed(#PB_Key_Escape)                     
    End 
kann das so überhaupt funktionieren?

jetzt öffnet sich nämlich nichts mehr :oops: irgentwie fühl ich mich dumm, was davon brauch ich eig. um einfach nur dieses .jpg anzuzeigen? :freak:
Benutze Topos-PB-Version 3.3
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

Für sprites nutzt man übrigens prinzipiell keine jpegs, denn kompressionsartefakte an spriterändern können zu sehr unschönen ergebnissen führen.
Benutzeravatar
Machete @PB
Beiträge: 81
Registriert: 12.09.2006 03:12

Beitrag von Machete @PB »

was? :| für was is dann der Befehl LoadJPEGSprite da?
Benutze Topos-PB-Version 3.3
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

Damit du es machen kannst, was nicht bedeutet, dass du das so machen sollst. Jpegs sind ok wenn deine sprites keine transparenten bereiche haben, also im Spiel nachher auch viereckig sein sollen. Das dürfte jedoch eher selten der fall sein, wenn du nicht grade einen Tetrisklon schreibst.

Wenn dein sprite transparente bereiche hat, dann kommt es mit ziemlicher sicherheit an den spriterändern zu artefakten.

Also Jpeg sprites sind eine gute idee für große hintergrund bilder oder ähnliches, sonst nimmt man besser artefaktfreie Bildformate.
Antworten