PerfectSize

    • Beta

    Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von jvbsl.

      PerfectSize

      Name des Programms:
      PerfectSize.dll - Version 0.3

      Beschreibung:
      In der *.dll befindet sich eine Classe namens "PerfectSize" - Mit Hilfe dieser Klasse könnt ihr Bilder auf ein Format skalieren und eine max. Größe festlegen, auf die die Datei reduziert wird, wenn durch den Skalierungsvorgang nich klein genug geworden ist. Die Arbeiten können auch in einem Bildbearbeitungsprogramm zur skalierung eines Bildes verwendet werden. Aktuell ist nur JPG unterstützt.

      Die Variable "Size" - Also die Maximalgröße, die das Bild maximal Groß seien darf muss als String in diesem Format angegeben werden:

      "1 MB"
      "2 KB"
      "3 GB"
      usw...
      Screenshot:
      - Nicht verfügbar -

      Verwendete Programmiersprache:
      Visual Basic .NET 2005

      Systemanforderungen:
      .NET Framework 2.5


      Download:
      Download DLL: PerfectSize.zip
      Gepackt: 7,31 KB
      Ungepackt: 28 KB

      Lizenz/Weitergabe:
      Freeware - ClosedSource
      DLL darf nur unter Namensnennung einkompliiert werden. (PerfectSize by NovaCyb & jvbsl)
      DLL ist durch Obfuscator-Masnahmen gegen Reverse Engineering geschützt.

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „NovaCyb“ ()

      Das was in der Beschreibung steht.
      Size muss als String angegeben werden zb.: "3 MB" od. "400 KB" od. "10 MB"

      Beispielcode:

      Spoiler anzeigen

      VB.NET-Quellcode

      1. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
      2. Dim Dateien As List(Of String) = ConvListObject2ListOfString(ListBox1)
      3. For x As Integer = 0 To Dateien.Count - 1
      4. Dim tmp As PerfectSize
      5. tmp = New PerfectSize(New Bitmap(Dateien(x)))
      6. AddHandler tmp.ProgressChanged, AddressOf Progress
      7. AddHandler tmp.PerfectSizeFound, AddressOf Complete
      8. tmp.SearchSize("3 MB")
      9. pS.Add(tmp)
      10. Next
      11. End Sub
      12. Public Function ConvListObject2ListOfString(ByRef lst As ListBox) As List(Of String)
      13. Dim StringList As New List(Of String)
      14. For i As Integer = 0 To lst.Items.Count - 1
      15. StringList.Add(lst.Items.Item(i))
      16. Next
      17. Return StringList
      18. End Function

      Darf ich dich erinnern das wir hier in der Library/Controls Section sind?
      Beim programmieren ist benutzerfreundlichkeit wohl nicht das wichtigste.

      Was wenn ich jetzt 3.65 MB als SearchSize möchte?
      Soll ich dann einfach 3.65 reinschreiben?
      jop....mit Kommazahlen könnte man bei der Umrechnung allgemein Probleme bekommen, da es keine halben Bytes gibt, müsste man dann halt entsprechend verändern,...
      Ich wollte auch mal ne total überflüssige Signatur:
      ---Leer---
      das is doch bescheuert
      warum soll ich eine bildgröße in bytes angeben
      das programm soll einem arbeit abnehmen und nicht noch zusätzlich welche draufpacken indem es die eingabe
      von 1 mb = 1048576 byte verlangt

      wie er das gelöst hat passt schon so

      wissen 2/3 der menschheit eigentlich was ein byte ist?!
      fx

      deepack schrieb:

      das is doch bescheuert
      warum soll ich eine bildgröße in bytes angeben

      Was ist bescheuerter? Eine Dateigröße als String (!!!) zu verlangen, oder in Bytes (also Integer) anzugeben?
      Man schaue sich nur mal die Klasse System.IO.FileInfo an.. Wird da etwa die Größe in String zurückgegeben? Nein genauso als Integer.
      es dient nur der Benutzerfreundlichkeit, du könntest auch deine Bytes direkt übergeben: "120" ohne eine Angabe wird es als Bytes interpretiert, aber es stimmt natürlich, dass dann eine Überladung wesentlich besser ist...
      Edit: außerdem sollte es wohl eher Long sein :P
      Ich wollte auch mal ne total überflüssige Signatur:
      ---Leer---
      frag mal eine Firma, ob die Benutzerfreundliche Programme wollen->natürlich !!!
      Und du weißt ja überhaupt nicht wie die Umwandlung stattfindet, nein, nicht mit CInt oder CType oder DirectCast, sondern mit Long.TryParse, ebenso folgt ja auch noch die Umrechnung...
      ich meine, dass ganze ist professioneller programmiert, als es dir Möglich gewesen wäre(kann mich natürlich auch irren...). Das ganze arbeitet mit Threads, die Events jedoch wiederum laufen im GUI Thread->Also wie löst du das?
      Nur zur Info, es gibt nicht sonderlich viele Leute, die wissen wie das geht, außerdem steht es in diesem Forum auch nicht mehr als 3 oder 4 mal ;)(einmal von mir^^)
      Ich wollte auch mal ne total überflüssige Signatur:
      ---Leer---