Seite 1 von 1

SaveImage - Problem

Verfasst: 13.12.2013 05:51
von Ironsmurf
Hallo zusammen

ich möchte gerne ein Bild speichern, das laden und einfügen aus der Zwischenablage funktioniert,
jedoch funktioniert das speichern einfach nicht.
Mache bestimmt wieder einen Anfängerfehler.
Wäre nett wenn ich mir auf die Sprünge helfen könntet.

Vielen Dank im voraus

Code: Alles auswählen

UseJPEGImageDecoder()

Name$ = "D:\10000.jpg"

OpenWindow(0, #PB_Ignore, #PB_Ignore, 400, 440, "Bildviewer", #PB_Window_SystemMenu)

ImageGadget(0, 10, 10, 120, 180, 0, #PB_Image_Border); Erstelle Image 0
ImageGadget(1, 200, 200, 120, 180, 0, #PB_Image_Border); Erstelle Image 1
LoadImage(0, Name$); Lade Bild von HDD
ResizeImage(0, 96, 142); Ändere Bild auf die vorgegebene Größe
SetGadgetState(0, ImageID(0)); Gebe Bild zurück

Ergebnis = GetClipboardImage(1);Lade Bild aus Zwischenablage
If Ergebnis = 0 : Debug "nicht geladen" : EndIf; Falls Ergebnis = 0, Debug Meldung
ResizeImage(1, 96, 142); Ändere Bild auf die vorgegebene Größe
SetGadgetState(1, ImageID(1)); Gebe Bild zurück

Speichern_0$ = "D:\10000.jpg"
Speichern_1$ = "D:\10001.jpg"

Repeat
  Select WaitWindowEvent(); Beim Beenden des Programms speichern
    Case #PB_Event_CloseWindow
      
      Ergebnis1 = SaveImage(0, Speichern_0$, #PB_ImagePlugin_JPEG)
      Debug Ergebnis1
      
      Ergebnis2 = SaveImage(1, Speichern_1$, #PB_ImagePlugin_JPEG)
      Debug Ergebnis2
      
      Break
      
    Case #PB_Event_Gadget
      If EventGadget() = 1
      EndIf
      
  EndSelect
  
ForEver

Re: SaveImage - Problem

Verfasst: 13.12.2013 06:12
von KeyKon
UseJPEGImageEncoder() scheint mir zu fehlen...

Re: SaveImage - Problem

Verfasst: 13.12.2013 08:46
von Chimorin
Hey,
1. Benutze EnableExplicit !Immer!
2. Wenn du schon das Nichtladen eines Bildes abfängst, solltest du auch dafür sorgen, dass nichts passiert, wenn kein Bild da ist. Ein einfaches End zum Beenden des Programms reicht.
3. Der Code:

Code: Alles auswählen

EnableExplicit

UseJPEGImageEncoder()
UseJPEGImageDecoder()

Define.s Name$, Speichern_0$, Speichern_1$
Define.i Ergebnis, Ergebnis1, Ergebnis2

Name$ = "D:\1000.jpg"

OpenWindow(0, #PB_Ignore, #PB_Ignore, 400, 440, "Bildviewer", #PB_Window_SystemMenu)

ImageGadget(0, 10, 10, 120, 180, 0, #PB_Image_Border); Erstelle Image 0
ImageGadget(1, 200, 200, 120, 180, 0, #PB_Image_Border); Erstelle Image 1
Ergebnis = LoadImage(0, Name$); Lade Bild von HDD
If Not Ergebnis 
  Debug "bla"
  End
EndIf
ResizeImage(0, 96, 142); Ändere Bild auf die vorgegebene Größe
SetGadgetState(0, ImageID(0)); Gebe Bild zurück

Ergebnis = GetClipboardImage(1);Lade Bild aus Zwischenablage
If Ergebnis = 0 
  Debug "nicht geladen" 
  End
EndIf; Falls Ergebnis = 0, Debug Meldung
ResizeImage(1, 96, 142); Ändere Bild auf die vorgegebene Größe
SetGadgetState(1, ImageID(1)); Gebe Bild zurück

Speichern_0$ = "D:\10000.jpg"
Speichern_1$ = "D:\10001.jpg"

Repeat
  Select WaitWindowEvent(); Beim Beenden des Programms speichern
    Case #PB_Event_CloseWindow
      
      Ergebnis1 = SaveImage(0, Speichern_0$, #PB_ImagePlugin_JPEG)
      Debug Ergebnis1
      
      Ergebnis2 = SaveImage(1, Speichern_1$, #PB_ImagePlugin_JPEG)
      Debug Ergebnis2
      
      Break
      
    Case #PB_Event_Gadget
      If EventGadget() = 1
      EndIf
      
  EndSelect
  
ForEver