Aktuelle Zeit: 12.11.2019 02:17

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: #Image Objektnummer ist sehr hoch
BeitragVerfasst: 05.07.2019 02:14 
Offline

Registriert: 28.11.2010 15:52
Hallo
kriege ne meldung
[ERROR] #Image Objektnummer ist sehr hoch (über 100000), sind Sie dazu sicher?

weiß jemand warum ?



Code:


DataSection
  Logo:
  IncludeBinary #PB_Compiler_Home + "Examples\Sources\Data\PureBasicLogo.bmp"
EndDataSection

image = CreateImage(#PB_Any, 390, 80)
If IsImage(image)
  CatchImage(image, ?Logo)
EndIf


; CreateImage(0, 390, 80)
; Debug IsImage(0)

OpenWindow(0, 0, 0, 320, 240, name$, #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
ImageGadget(0, 0, 0, 400, 90, ImageID(image))

Repeat
Until WaitWindowEvent(1) = #PB_Event_CloseWindow





Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: #Image Objektnummer ist sehr hoch
BeitragVerfasst: 05.07.2019 03:18 
Offline
Benutzeravatar

Registriert: 22.02.2008 20:49
Wohnort: Utah, USA
Von #PB_Any generierte IDs sollten nicht wie konstante IDs wiederverwendet werden.

Ersetzen Sie diesen Code:
Code:
image = CreateImage (#PB_Any, 390, 80)
If IsImage (image)
  CatchImage (image,? Logo)
EndIf


zu diesem Code:
Code:
image  = CatchImage(#PB_Any, ?Logo)
If IsImage (image) = 0
   ;fehler
EndIf

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: #Image Objektnummer ist sehr hoch
BeitragVerfasst: 06.07.2019 13:37 
Offline

Registriert: 28.11.2010 15:52
Und was hab ich jetzt schon wieder falsch gemacht ?


Code:

UseJPEGImageEncoder()

Procedure img_buffer()
 
  image = CreateImage(#PB_Any, 320, 240)
 
  If StartDrawing(ImageOutput(image)) 
    Box(0, 0, 320, 240, RGB(255, 100, 255))
    StopDrawing()
  EndIf
  *puffer = EncodeImage(image , #PB_ImagePlugin_JPEG)
  FreeImage(image)
 
  ProcedureReturn *puffer
EndProcedure



*img = img_buffer()

image2 = CatchImage(#PB_Any, *img)
If IsImage(image2) = 0
  Debug "error" :End
EndIf



OpenWindow(0, 0, 0, 300, 300, name$, #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
ImageGadget(0, 0, 0, 400, 90, ImageID(image3))

Repeat
Until WaitWindowEvent(1) = #PB_Event_CloseWindow




Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: #Image Objektnummer ist sehr hoch
BeitragVerfasst: 06.07.2019 13:52 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
kevv hat geschrieben:
Und was hab ich jetzt schon wieder falsch gemacht ?


...


Decoder fehlt :>

Code:
UseJPEGImageEncoder()
UseJPEGImageDecoder()

Procedure img_buffer()
 
  image = CreateImage(#PB_Any, 320, 240)
 
  If StartDrawing(ImageOutput(image)) 
    Box(0, 0, 320, 240, RGB(255, 100, 255))
    StopDrawing()
  EndIf
  *puffer = EncodeImage(image , #PB_ImagePlugin_JPEG)
  FreeImage(image)
 
  ProcedureReturn *puffer
EndProcedure



*img = img_buffer()

image2 = CatchImage(#PB_Any, *img)
If IsImage(image2) = 0
  Debug "error" :End
EndIf



OpenWindow(0, 0, 0, 300, 300, name$, #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
ImageGadget(0, 0, 0, 400, 90, ImageID(image2))

Repeat
Until WaitWindowEvent(1) = #PB_Event_CloseWindow

_________________

Links:
PureBasic Discord
[ENGINE] 2D Engine Nautilus (Win)
[INCLUDE] GLFW 3.3 Library
[MODULE] Bass Library 2.4 (Win)
[LIBRARY] Hexi Binary2Hex (Win)



Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: #Image Objektnummer ist sehr hoch
BeitragVerfasst: 06.07.2019 14:12 
Offline

Registriert: 28.11.2010 15:52
:allright:

warum wird das den nicht automatisch includiert sobald man die function EncodeImage benutzt ?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: #Image Objektnummer ist sehr hoch
BeitragVerfasst: 06.07.2019 14:40 
Offline
Kommando SG1
Benutzeravatar

Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Weil der Compiler nicht weiß welches Format zu benötigst und für das Standard-Format (*.bmp) kein Encoder gebraucht wird.
Die Encoder verbrauche Speicher in der finalen Exe, sodass der Einsatz vom Nutzer selbst entschieden werden kann.

_________________
Bild
 
BildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye