Auf Icongröße anpassen

  • VB.NET

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von Michael K..

    Auf Icongröße anpassen

    Hallo, ich schreibe gerade ein Format-Wandler-Programm. Formate lassen sich leicht umwandeln (ich weiß jetzt nicht unbedingt, ob das der richtige Code ist und man die Datei "richtig" oder "komplett" umwandelt):

    VB.NET-Quellcode

    1. IO.File.Copy("Pfad\Datei.mp3", "Pfad\Datei.wav");


    Das klappt alles ganz gut und auch ohne Probleme, aber wie verkleinere ich Icons auf 16x16? Wird dann überhaupt das Icon angenommen? VB sendet bei meinen Übergroßen Icons einen Fehler.

    Hinweis: Die Frage ist Fett geschrieben, damit nichts durcheinander kommt.
    Also ist diese Umwandlungsmethode falsch?
    Zum Icon:
    Das Icon habe ich selbst unter Paint erstellt und unter Icon.ico gespeichert. Das von mir gemachte Icon ist größer als 16x16. Deswegen möchte ich selber in VB mal versuchen ein "Verkleinerungsprogramm" zu erstellen.
    P.S.: So mal als Zwischenfrage, ist es bei Musikdateien, nehmen wir mal .mp3, leicht, auch ohne Umwandlungsprogramme diese Musikdatei in ein .wav Format umzuwandeln? Also man macht es ohne Hilfe. Einfach so als würde man ein Bild in Paint von .bmp in ein .png Format umwandeln.
    Was hat

    Michael K. schrieb:

    VB.NET-Quellcode

    1. IO.File.Copy()
    mit Icongröße zu tun?
    Seit wann kümmert sich der IO.File.Copy()-Befehl um Dateiformate? Die Umbenennung macht noch kein neues Format :!:
    Was ist der Sinn Deiner Fragestellung :?:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    wenn du ein bild von .bmp mittels paint in .png umwandelst machst du es aber MIT Hilfe.
    Du scheinst garnicht zu wissen, was der unterschied zwischen mp3 und wav ist - les mal die wiki-artikel, bringt vllt etwas licht in die große dunkelheit^^

    Bilder verkleinern ist sehr einfach - hättest auch mal suchen/googlen können. [VB 2010] Stretch Image Speichern
    Wie man Bilder abspeichert wirst du ja noch selber finden^^
    :D, gar nichts, aber wird dieser Befehl denn von Umwandlungsprogrammen angewendet?

    Und ja, Paint ist damit eine Hilfe, aber war schon auf Windows vorinstalliert. Kann man denn ohne VB, ohne nicht vorinstallierte Umwandlungsprogramme .mp3 oder irgendeinen anderen Format in z.B. .mp4 umwandeln?

    Michael K. schrieb:

    :D, gar nichts, aber wird dieser Befehl denn von Umwandlungsprogrammen angewendet?
    Bei Images ist das vorgefertigt.

    VB.NET-Quellcode

    1. Dim bmp = New Bitmap("xxx.bmp")
    2. bmp.Save("xxx.jpg", ...JPeg)
    enn Du Musikdateien konvertieren willst, brauchst Du entweder ein Konvertierprogramm oder Du musst Dich selbst mit der Konvertierung befassen.
    Und da musst Du eine Datei blockweise einlesen, konvertieren und blockweise wieder speichern.
    Das gent nicht mit einem Einzeiler.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    :D, währe auch zu einfach gewesen. Okay, aber sind die Dateien dann nicht umgewandelt? Die heißen dann doch auch Musikdatei.mp3. Blöde Frage: Aber da muss doch was anders sein. Würde die mit IO.File.Copy umgewandelte .wav Datei eigentlich von Programmen genommen werden, die nur WAV-Dateien nehmen?
    Glückwunsch, du hast eben einen 4 monate alten, erledigten, thread ausgegraben xD

    Da hätte ich noch eine Frage: Wo wird da denn das Bild, also eben das "gezeichnete" hinzugefügt?

    Ich verstehe nicht, was du meinst. Interessant für dich wird der Teil sein (etwas umgeformt):

    VB.NET-Quellcode

    1. Dim bit As New Bitmap(16,16)
    2. Using gra As Graphics = Graphics.FromImage(bit)
    3. gra.DrawImage(input, 0, 0, 16, 16)
    4. End Using


    die bitmap kannst du nun wie RodFromGermany dir schon erklärte speichern - u.A. als Icon. Input muss das QuellBild sein, dieses wird verkleinert.




    Die Daten (mp3 zu wav) sind NICHT umgewandelt - du hast nur die Datei umbenannt. Siehe mein Beispiel mit dem LKW in der Garage...
    lg
    Okay, also hat jedes Format seinen "eigenen Stil". Dann muss ich beim Konvertieren von Musikdateien den ganzen Maschienencode ändern (, was ich niemals können werde)?
    Glückwunsch, du hast eben einen 4 monate alten, erledigten, thread ausgegraben xD

    Blöd, 4 Monate. Naja, die Frage musste sein. :D
    So ist es. Warum sollte man sonst verschiedene Dateiformate haben? Wav z.B. ist unkomprimiert während .mp3 nur einen Bruchteil der dateigröße benötigt, weil es komprimiert wurde. Bei den Bildformaten ist es genauso:

    BMP - hier liegen alle Informationen in "Klartext" vor - sprich die Informationen zu jedem Pixel (RGB) liegen als einfacher Array vor - pro Pixel wird also konstant 3Byte speicher beansprucht (24bpp-Bitmap).

    JPG - hier wid das Bild grob gesagt in Blöcke unterteilt und mit diversen algos so umgerechnet, dass weniger speicher verbraucht wird. Die Bildqualität leidet darunter. Darum sehen Screenshots im .jpg-Format mies aus - bei Landschaftsfotos/etc sieht man keinen großen Unterschied.

    PNG - hier wird afaik eine Farbpalette angelegt. Die Einzelnen Pixel sind dann nur noch Index-Werte zu dem Farbpaletten-Eintrag. Bei Bildern mit wenig verschiedenen Farben (z.B. Screenshots von Programmen) kann so erheblich viel Speicherplatz gespart werden UND die Qualität bleibt wie bei .bmp komplett erhalten. Digitalkamerabilder von Landschaften/etc hingegen werden nicht vorteilhaft abgespeichert und brauchen viel Speicherplatz.

    Da jedes Format anders funktioniert sehen auch die Daten anders aus - auch wenn das bild (nahezu) gleich aussieht. Ein bloßes verändern der Dateiendung (=> umbenennen) ändert an den Binärdaten garnichts. Wenn du wirklich von hand zu fuß Videodaten umwandeln willst, dann musst du genau wissen, wie die einzelnen Formate aufgebaut sind und funktionieren - eine anspruchsvolle aufgabe!
    Oo da biste einem rießen Irrtum aufgesessen.

    Wenn du wirklich wissen willst was der Unterschied zwischen Wav und Mp3 ist dann schau dir mal das hier an:
    WAV: (kleine zusammenfassung) de.wikipedia.org/wiki/RIFF_WAVE
    MP3:
    mp3-tech.org/ ,

    de.wikipedia.org/wiki/MP3


    Das sind zwei total verschiedene Welten.
    MP3 Encodiert die Daten in Frames und kompremiert den Content dieser Frames.

    Wav (PCM) reiht einfach nur abtast werte aneinander.

    Dateiendung ändern bewirkt zwar, dass im Windows explorer mp3-datei steht aber öffne das mal. Das wird in 1000 Jahren noch nirgends funktionieren.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    Michael K. schrieb:

    Was ist kompirieren? Klar, da wird was verkleinert, aber was genau?
    Das sind super-listige Algorithmen, also genau kann dir das vmtl. niemand sagen, und wenn, würdest du vmtl. nicht verstehen.
    Grob gesagt gibts wohl 2 Strategien:
    1. man sucht nach wiederkehrenden Mustern, und merkt sich für die einen Key. Im Komprimat schreibt man dann nur noch die keys hin, und beim Dekomprimieren ersetzt man diese Keys wieder durch das Muster.
    2. man vereinfacht den Datenbestand, und zwar in einer Weise, die von der menschlichen Hör-/Seh- Empfindung möglichst unbemerkt bleibt.
    Möglicherweise gibts weitere Strategien.
    Achso, ja, ich bin nicht ganz dumm. Das habe ich verstanden. Ich habe mir kompirieren immer so vorgestellt, dass alle Bytes wie ein 500 km langes Papierstück einfach zusammengeklappt werden. Dann sind es nach mehrerem Falten keine 500 km mehr sondern nur noch 100 km. (Meine Vorstellungen - verwirrend :D)
    Moin,

    also bei deiner Vorstellung hättest du durchs falten ja nix gewonnen. Dadurch würde dein Stück Papier zwar kürzer aber auch höher werden. Etwa so als ob du aus einer 500 MB Datei 5x 100MB Dateien machst. Der Platzverbrauch auf der Platte bleibt etwa gleich
    Kannst dir das aber trotzdem mit dem Beispiel vor Augen führen.

    Alle 100km ist ein Strich auf dem Papier. Also schneidest du nach dem Strich das Papier durch setzt ein kleines Stück Papier mit der Info 5x vor das erste Stück und wirfst den Rest weg. Schon hast du eine ganz einfache Komprimierung :) (mal sehr sehr einfach gesprochen)