Ich habe sehr große Bilder (jpg) und ich möchte ein csharp-Programm schreiben, um die Dateien zu durchlaufen und die Größe jedes Bildes um 75% zu reduzieren.
Ich habe es versucht:
%Vor%aber die Dateigröße ist immer noch sehr groß.
Gibt es trotzdem Thumbnails und die Dateigröße ist viel kleiner?
Verwendung:
%Vor%Das wird Test.jpg mit einer Qualität von 10 komprimieren und als Test2.jpg speichern.
BEARBEITEN: Könnte besser als Erweiterungsmethode sein:
%Vor%Verwendung:
%Vor%ImageMagick ist ein Befehlszeilen-Tool, das für die Bildbearbeitung äußerst nützlich ist. Ich habe es zur Größenanpassung großer Bilder und zur Erstellung von Miniaturansichten verwendet, wenn das Seitenverhältnis des Quellbildes unbekannt oder unzuverlässig ist. ImageMagick ist in der Lage, Bilder auf eine bestimmte Höhe oder Breite zu skalieren und dabei das ursprüngliche Seitenverhältnis Ihres Bildes beizubehalten. Es kann bei Bedarf auch Platz um ein Bild herum hinzugefügt werden. Alles in allem sehr leistungsfähig und eine nette Abstraktion vom Umgang mit .nets Image APIs. Um das Befehlszeilentool imageMagick aus C # zu verwenden, empfehle ich das Objekt System.Diagnostics.ProcessStartInfo wie folgt zu verwenden:
%Vor%Mit dem% parameter scale können Sie die Größe Ihres Bildes leicht um 75% reduzieren
Aus GetThumbnailImage
der Dokumentation:
Wenn das Bild ein eingebettetes Miniaturbild enthält, ruft diese Methode das eingebettete Miniaturbild ab und skaliert es auf die angeforderte Größe. Wenn das Bild kein eingebettetes Miniaturbild enthält, erstellt diese Methode ein Miniaturbild, indem das Hauptbild skaliert wird.
Ich würde vorschlagen, dass Sie kleinere Werte für Breite und Höhe verwenden. Probieren Sie:
%Vor%Siehe Beispielcode .
Lesen Sie auch die Dokumentation:
Die GetThumbnailImage-Methode funktioniert gut, wenn das angeforderte Miniaturbild eine Größe von etwa 120 x 120 Pixeln hat. Wenn Sie ein großes Miniaturbild (z. B. 300 x 300) von einem Bild mit einem eingebetteten Miniaturbild anfordern, kann dies zu einem deutlichen Qualitätsverlust des Miniaturbilds führen. Es ist möglicherweise besser, das Hauptbild zu skalieren (statt das eingebettete Miniaturbild zu skalieren), indem Sie die DrawImage-Methode aufrufen.
Ich denke, Sie sollten sich die Skalierungs-API ansehen.
Tags und Links c# size image file image-scaling