Seite 2 von 3

Verfasst: 19.06.2006 20:31
von Slut-Hunter
Danke für den Tipp, jetzt klappt das Resizen und das speichern, leider hab ich immer noch das Problem, daß es nur bei einem Bild funzt.
Die anderen werden leider iggnoriert :(

Habs im Moment so

Code: Alles auswählen

ForEach Number.s()

  MessageRequester("Bla", Number.s(),#PB_MessageRequester_Ok)

  AddGadgetItem(81, -1, Number.s(), ImageID)

  LoadImage(150, Number.s())
  
  w.f = ImageWidth()
  h.f = ImageHeight()
  New_H.f = h.f / w.f * New_W
  
  bild=ResizeImage(150, New_W, New_H.f )
  SaveImage(150, "C:\BLUB\"+DateiName$, #PB_ImagePlugin_JPEG, 10)
Next

Verfasst: 20.06.2006 09:15
von #NULL
sorry, ich hab den thread nicht wirklich gelesen, aber

Code: Alles auswählen

ForEach Number.s()
  ; ....
  LoadImage(150, Number.s())
  ; ....
  bild=ResizeImage(150, New_W, New_H.f )
Next 
kommt mir seltsam vor. ich wusste nicht, dass ResizeImage() das resized bild auch zurückgeben kann.
dass LoadImage(150, ...) immer das vorhergehende bild Nr 150 zerstört, scheint dir ja klar zu sein. aber "bild" wird ebenfalls in jedem schleifendurchgang ersetzt. könnte das der grund sein, warum du meinst es funktioniert (am ende) nur mit einem bild?
(wenn ich nicht zu wissen scheine worum es in dem thread geht, ignoriert mich einfach 8))

Verfasst: 20.06.2006 10:45
von edel
@Slut-Hunter (Was ist denn ein Slut-Hunter ?)

Code: Alles auswählen

      If EventGadget()=20
        
        New_W = Val(GetGadgetText(25))
        
        For i = 0 To CountGadgetItems(80) - 1
          File.s = GetGadgetItemText(80, i, 0)
          LoadImage(0,File)
          ResizeImage(0, 100, 100)
          SaveImage(0, "copy_"+GetFilePart(File)+".jpg", #PB_ImagePlugin_JPEG, 10) 
        Next 
        
      EndIf
Benutze, wenn moeglich,nur eine Schleife.
Fange bei der ID , egal ob gadget, image oder sonstwas bei 0 an
oder nimm, falls vorhanden, #pb_any. So sparst du einige Bytes.




@#NULL
ResizeImage gibt das OSHandle zurueck. Wo wir wieder bei Handle waeren ;-)
Ist in dem Beispiel hier aber voellig Wurst.

Verfasst: 20.06.2006 10:48
von winduff
Slut = Schl*mpe / Hu*e / Prostituierte
Hunter = Jäger

Zusammen ergiebt das: Sch*ampenjäger :shock:

:allright:

Verfasst: 20.06.2006 12:38
von Zaphod
Hab ich mich auch grade drüber geärgert.

Ich vermute mal das ein "Schlampenjäger" entweder ein gestörter Serienmörder oder ein voll-krass-konkreter-Gangster ist.

Verfasst: 20.06.2006 14:37
von Slut-Hunter
@Alle die meinen Nick so unorthodox fanden und eigenartige Vergleiche anstellen

Also mein Nick lautet so, weil ich gerne Porn Sammle, sagen wir mal es gibt eine Porn
Schlampe^^ die Vanessa BlaBlub heißt, und ich finde sie geil, dann sammel ich halt alles an Porn von ihr
b.s.w mach eine Schnitzeljagd, klapper alle möglichen Seiten mit Clips nach ihr ab, und check ab in welchen Movies die schon gespielt hat(gibt ja Seiten da steht so was drin)
und besorge mir die Movies.

Also bin kein Serienmörder. :lol:

Ok aber jetzt wieder zum eigenlichen Thema.
#NULL hat geschrieben:sorry, ich hab den thread nicht wirklich gelesen, aber

Code: Alles auswählen

ForEach Number.s()
  ; ....
  LoadImage(150, Number.s())
  ; ....
  bild=ResizeImage(150, New_W, New_H.f )
Next 
kommt mir seltsam vor. ich wusste nicht, dass ResizeImage() das resized bild auch zurückgeben kann.
dass LoadImage(150, ...) immer das vorhergehende bild Nr 150 zerstört, scheint dir ja klar zu sein. aber "bild" wird ebenfalls in jedem schleifendurchgang ersetzt. könnte das der grund sein, warum du meinst es funktioniert (am ende) nur mit einem bild?
(wenn ich nicht zu wissen scheine worum es in dem thread geht, ignoriert mich einfach 8))
Yup, aber die For Each Schleife, arbeitet ja stapelweise ab, hab das hier ja abgecheckt.

Code: Alles auswählen

ForEach Number.s()
  MessageRequester("Bla", Number.s(),#PB_MessageRequester_Ok)
  AddGadgetItem(81, -1, Number.s(), ImageID)
  ;bild = LoadImage(150, Number.s())
  ;UseImage(150)
  ;CopyImage(150, 170)
  ;w.f = ImageWidth()
  ;h.f = ImageHeight()
  ;New_H.f = h.f / w.f * New_W
  ;bild=ResizeImage(170, New_W, New_H.f )
  ;SaveImage(170, "C:\BLUB"+DateiName$, #PB_ImagePlugin_JPEG, 10)
Next
Jede Datei in der Listview, gibt der MessgeRequester, nach und nach aus.
Also dachte ich mir, daß es bei den Images auch so ist.

b.s.w es so abnlaufen würde.

z.B sind in der Listview 4 Dateien.

001.jpg
002.jpg
003.jpg
004.jpg

Jetzt packt der sich 001.jpg weist ID 150 zu, und liest die Maße ein, und resized es, und speichert es mit dem ursprünglichen Dateinamen.

Danach macht es das Selbe mit 002.jpg, dann mit 003.jpg usw

Und die zugewiese ID währe in dem Fall egal, b.s.w egal das es immer die 150 ist, weil wenn ich 001.jpg gespeichert hab, brauch ich ja nicht immer noch die ID 150 für 001.jpg reserviert zu halten.

@edel

Leider weiss ich nicht, wie ich das mit einer Schleife hinkriegen soll, daß die Dateinamen in die Linked List gelangen.

#PB_Any klappt in dem Fall bei mir nicht, stürzt auf der Stelle ab.

PS: Fange eigentlich immer bei ID 0 an, nur änder ich im Verlauf viel, und bleibe oft stundenlang an einer Funktion hängen, wenn ich immer komplett fertig bin, ordne ich die ID´s um, auch den Aufbau usw

Verfasst: 20.06.2006 14:59
von #NULL
hä?

Code: Alles auswählen

;SaveImage(170, "C:\BLUB\"+DateiName$, #PB_ImagePlugin_JPEG, 10) 
du ueberschreibst doch das bild auch jedes mal auf der platte.(?, oder fehlt dort ein "\" vor DateiName$ zum strukturzugriff, denn DateiName$ ist doch in each schleifen-durchgang gleich)

// sorry, is ja auskommentiert :oops: ...werd mich mal lieber zurueckziehen

Verfasst: 20.06.2006 15:14
von edel
Slut-Hunter hat geschrieben:@Alle die meinen Nick so unorthodox fanden und eigenartige Vergleiche anstellen

Also mein Nick lautet so, weil ich gerne Porn Sammle, sagen wir mal es gibt eine Porn
Schlampe^^ die Vanessa BlaBlub heißt, und ich finde sie geil, dann sammel ich halt alles an Porn von ihr
b.s.w mach eine Schnitzeljagd, klapper alle möglichen Seiten mit Clips nach ihr ab, und check ab in welchen Movies die schon gespielt hat(gibt ja Seiten da steht so was drin)
und besorge mir die Movies.

Also bin kein Serienmörder. :lol:
:o Ich frag nie wieder , ehrlich !
Dachte das waeren Schauspieler und keine Schlampen ... (Bitte nicht darauf antworten ;-))
Slut-Hunter hat geschrieben: Leider weiss ich nicht, wie ich das mit einer Schleife hinkriegen soll, daß die Dateinamen in die Linked List gelangen.
Im Prinzip schon bei 'While Tomate' , wobei die Liste natuerlich hier
keinen Sinn mehr macht , es sei denn du moechtest sie spaeter weiter
verwenden.

Code: Alles auswählen

While Tomate$
  AddGadgetItem(80, -1, Tomate$)
  Addelement(Number())
  Number() = Tomate$
  
  If LoadImage(0, Tomate$) 
    
    w.f = ImageWidth(0)
    h.f = ImageHeight(0)
    New_H.f = h.f / w.f * New_W
    
    ResizeImage(0, New_W, New_H.f )    
    SaveImage(0, "C:\BLUB"+ GetFilePart(Tomate$), #PB_ImagePlugin_JPEG, 10)
    
  Else
    Debug "Bild konnte nicht geladen werden"
  Endif
  
  Tomate$ = NextSelectedFileName() 
Wend

Verfasst: 20.06.2006 15:16
von Slut-Hunter
Das Schliest sich normalerweise aus, dachte ich.

Code: Alles auswählen

If EventGadgetID()=90
  
  Tomate$ = OpenFileRequester("Select Pictures", "C:\*.jpg", "Pictures | *.jpg", ,#PB_Requester_MultiSelection) 
  
  While Tomate$
    
    Pfad$ = GetPathPart(Tomate$)
    DateiName$ = GetFilePart(Tomate$)   ;<----!!!!!!!!!!!!!!!!!!!!!!!!!
    AddGadgetItem(80, -1, Pfad$+DateiName$, -1) ;<----!!!!!!!!!!!!!!!!!!!!!!!!
    Tomate$ = NextSelectedFileName()
  Wend
EndIf


If EventGadgetID()=20
  
New_W = Val(GetGadgetText(25))
  
NewList Number.s()

For i = 0 To CountGadgetItems(80) <---!!!!!!!!!!!!!!!!!!!!!
BLA$ = GetGadgetItemText(80, i, 0) <---!!!!!!!!!!!!!!!!!!!
Und bei Linked List und dem ListviewGadget klappt es ja so weit mit DateiName$ auch.

Was ich auch nicht verstehe, 001.jpg wurde im letzten Test erstellt.
Und ich hab sie nicht gelöscht, dann teste ich es nochmal, und es wird 002.jpg verarbeitet.
Und beim nächsten Test b.s.w Programmaufruf ist es die 003.jpg

Verfasst: 20.06.2006 15:35
von edel
Laeuft unter 3.94 , sonst anpassen.

Code: Alles auswählen


  UseJPEGImageEncoder()
  UseJPEGImageDecoder() 

  OpenWindow(0,0,0,675,410,1|#WS_SYSMENU,"")
    
  CreateGadgetList(WindowID(0))
    
    ButtonGadget(0,200,10,100,20,"Start")
    ButtonGadget(1,10,10,100,20,"Files Auswählen") 
    StringGadget(2,120,10,40,20,"200",#PB_String_Numeric) 
    ListViewGadget(3, 10, 70, 320, 300) 
    ListViewGadget(4, 340, 70, 320, 300) 
    
    
    
  Repeat
    uMsg = WaitWindowEvent()  
    
    If uMsg = #PB_Event_Gadget
      
      If EventGadgetID() = 1
        
        FileName.s = OpenFileRequester("Select Pictures", "C:\*.jpg", "Pictures | *.jpg", 0,#PB_Requester_MultiSelection)
        
        While FileName
          AddGadgetItem(3,-1,FileName)
          FileName = NextSelectedFileName()
        Wend
        
      ElseIf EventGadgetID() = 0
        
        
        count = CountGadgetItems(3)
        New_W = ValF(GetGadgetText(2)) 
        
        For i = 0 To count -1
          
          Filename = GetGadgetItemText(3,i,0)
          
          If LoadImage(0, Filename) 
            W_1.f     = ImageWidth()
            H_1.f     = ImageHeight()
            New_H1.f  = H_1.f / W_1 * New_W
            
            ResizeImage(0, New_W, New_H1 ) 
            
            If SaveImage(0, "C:\BLUB\"+GetFilePart(Filename), #PB_ImagePlugin_JPEG, 10) = 0
              Debug "Speichern fehlgeschlagen"
            Else
              AddGadgetItem(4, -1, Filename)
            EndIf
          Else
            Debug "Laden fehlgeschlagen"
          EndIf
        Next  
        
      EndIf
      
      
      
      
    EndIf
    
    
  Until uMsg = #WM_CLOSE