Wie kann ich die Größe eines Bildes ändern, ohne dass die Bildqualität beeinträchtigt wird?
c#
image
image-scaling
öffentliche statische
quelle
quelle
Antworten:
Wie rcar sagt, kann man nicht ohne Qualitätsverlust das Beste, was man in c # tun kann, ist:
quelle
Wenn Sie keine Vektorgrafiken erstellen, können Sie die Größe eines Bildes nicht ändern, ohne die Bildqualität zu verlieren.
quelle
von hier
quelle
Ich glaube, Sie möchten Ihre Bilder "in der Größe ändern / neu abtasten". Hier ist eine gute Seite, die Anweisungen und eine Utility-Klasse enthält (die ich auch zufällig benutze):
http://www.codeproject.com/KB/GDI-plus/imgresizoutperfgdiplus.aspx
quelle
Wenn Sie die Größe nicht ändern, können Sie dies nicht mit Rastergrafiken tun.
Mit einer guten Filterung und Glättung können Sie die Größe ändern, ohne die Qualität zu beeinträchtigen.
Sie können auch die DPI-Metadaten des Bildes ändern (vorausgesetzt, es enthält einige), die genau die gleiche Pixelanzahl beibehalten, aber die Einstellung der Bildbearbeiter bei Messungen in der realen Welt ändern.
Und um alle Grundlagen abzudecken: Wenn Sie wirklich nur die Dateigröße des Bildes und nicht die tatsächlichen Bildabmessungen gemeint haben, schlage ich vor, dass Sie sich eine verlustfreie Codierung der Bilddaten ansehen. Mein Vorschlag hierfür wäre, das Bild als PNG-Datei erneut zu speichern (ich verwende normalerweise Farbe als kostenlosen Transcoder für Bilder in Windows. Laden Sie das Bild in Farbe, speichern Sie es wie im neuen Format).
quelle
Sie können die Größe eines Bildes nicht ändern, ohne an Qualität zu verlieren, einfach weil Sie die Anzahl der Pixel reduzieren.
Reduzieren Sie die Größe auf der Clientseite nicht, da Browser die Größe von Bildern nicht gut ändern können.
Sie können die Größe programmgesteuert ändern, bevor Sie sie rendern oder wenn ein Benutzer sie hochlädt.
In diesem Artikel wird eine Möglichkeit erläutert, dies in c # zu tun: http://www.codeproject.com/KB/GDI-plus/imageresize.aspx
quelle
Überprüfen Sie, ob Ihnen die Bildgrößenänderungsqualität dieses Open Source-ASP.NET-Moduls gefällt . Es gibt eine Live-Demo, mit der Sie selbst herumspielen können. Es liefert Ergebnisse, die (für mich) nicht von der Photoshop-Ausgabe zu unterscheiden sind. Es hat auch ähnliche Dateigrößen - MS hat gute Arbeit mit ihrem JPEG-Encoder geleistet.
quelle
Es gibt etwas da draußen, kontextabhängige Größenänderung, ich weiß nicht, ob Sie es verwenden können, aber es lohnt sich, es sich anzusehen, das ist sicher
Eine schöne Video-Demo (Vergrößerung erscheint in der Mitte) http://www.youtube.com/watch?v=vIFCV2spKtg
Hier könnte es Code geben. http://www.semanticmetadata.net/2007/08/30/content-aware-image-resizing-gpl-implementation/
War das übertrieben? Vielleicht gibt es einige einfache Filter, die Sie auf ein vergrößertes Bild anwenden können, um die Pixel ein wenig zu verwischen. Sie könnten sich das ansehen.
quelle
Ändern Sie die Größe größer oder kleiner? Um einen kleinen Prozentsatz oder um einen größeren Faktor wie 2x, 3x? Was verstehen Sie unter Qualität für Ihre Bewerbung? Und welche Art von Bildern - Fotografien, scharfkantige Strichzeichnungen oder was? Schreiben Sie Ihren eigenen Pixel-Schleifcode auf niedriger Ebene oder versuchen Sie, dies so weit wie möglich mit vorhandenen Bibliotheken (.net oder was auch immer) zu tun?
Zu diesem Thema gibt es eine große Menge an Wissen. Das Schlüsselkonzept ist die Interpolation.
Browsing-Empfehlungen:
* http://www.all-in-one.ee/~dersch/interpolator/interpolator.html
* http://www.cambridgeincolour.com/tutorials/image-interpolation.htm
* für C #: https: //secure.codeproject.com/KB/GDI-plus/imageprocessing4.aspx?display=PrintAll&fid=3657&df=90&mpp=25&noise=3&sort=Position&view=Quick&fr=26&select=629945 * Dies ist Java-spezifisch, kann aber lehrreich sein - http: //today.java.net/pub/a/today/2007/04/03/perils-of-image-getscaledinstance.html
quelle
Hier finden Sie auch Wasserzeichencodes in dieser Klasse:
quelle
Hier ist ein Forenthread , der ein Codebeispiel für die Größenänderung von C # -Bildern enthält. Sie können einen der Ordner der GD-Bibliothek verwenden , um ein Resampling in C # durchzuführen.
quelle