Wie erstellen Sie ein Miniaturbild aus einem JPEG in Java?
Kann mir bitte jemand helfen mit dem code für das erstellen einer Miniaturansicht für eine JPEG-Dateien in Java.
Ich bin neu in diesem, so eine Schritt für Schritt Erklärung wäre sehr hilfreich.
InformationsquelleAutor der Frage | 2009-07-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies erzeugt ein 100x100 Pixel thumbnail als Bild-Objekt. Wenn Sie möchten, schreiben Sie es wieder auf der Festplatte einfach konvertieren Sie den code zu diesem:
Auch wenn Sie sind besorgt über speed-Probleme (die oben beschriebene Methode ist eher langsam, wenn Sie wollen, zu skalieren, viele Bilder) verwenden Sie diese Methoden, und die folgende Erklärung :
Und dann rufen :
wo 0,5 ist der Maßstab und img ist ein BufferedImage mit der normal großen Bild.
InformationsquelleAutor der Antwort Savvas Dalkitsis
Wie Sie vielleicht herausgefunden haben, "einfach" und "gut aussehenden Ergebnis" sind zwei sehr verschiedene Dinge. Ich habe gekapselt, diese beiden Anforderungen in einem sehr einfachen java-Bild-Skalierung Bibliothek (Apache 2 Lizenz), dass die nicht einfach alles, was das richtige für Sie.
Beispiel-code zum erstellen einer Miniaturansicht sieht wie folgt aus:
Deinem Bild die Proportionen geehrt, die Bibliothek macht eine best-raten, welche Methode er verwenden soll, basiert auf der Menge der Veränderung in das Bild aufgrund der Skalierung (SCHNELLSTE, AUSGEGLICHEN oder QUALITÄT) und die am besten unterstützt Java2D-image-Typen werden immer zu tun pflegte, die Skalierung zu vermeiden, das Problem der "schwarz" - Ergebnissen oder schrecklich aussehende Ausgang (z.B. übermäßig gerasterten GIF-Bilder).
Auch, wenn Sie wollen, um ihn zu zwingen, um die Ausgabe der best aussehende Miniaturansicht möglich in Java, die API-Aufruf würde dann so Aussehen:
Nicht nur die Bibliothek verwenden Sie die Java2D empfohlen, inkrementelle Skalierung für Sie, um Ihnen die besten aussehende Ergebnis, es gilt auch, ein optionaler Anti-Aliasing-Effekt, um die Miniaturansicht (ConvolveOp mit einer sehr fein abgestimmten kernel) jeder-so-etwas Weichzeichnen die übergänge zwischen den pixel-Werten, so stellen Sie die thumbnail-schauen Sie gleichmäßiger und nicht scharf oder poppy, wie Sie vielleicht gesehen haben, wenn Sie gehen von sehr großen Bildern unten zu sehr kleinen.
Können Sie Lesen, alle Kommentare in der Bibliothek (der code an sich ist doc ' ed stark), um zu sehen, all die verschiedenen JDK bugs, die umgangen oder Optimierungen, die zur Verbesserung der performance oder Speicherauslastung. Ich verbrachte eine MENGE Zeit, die Optimierung dieser Umsetzung und haben viel gutes feedback von Leuten der Bereitstellung in web-apps und anderen Java-Projekten.
InformationsquelleAutor der Antwort Riyad Kalla
Dies ist die einfache Art und Weise erstellen Sie eine 100 X 100 Miniaturansicht ohne dehnen oder Stauchen in der Bild.
InformationsquelleAutor der Antwort Ali Imran
Den JMagick Bibliothek (und Umsetzung ImageMagick in Java) haben, was Sie brauchen.
InformationsquelleAutor der Antwort mfloryan
den Java-code oben (mit der Skala /getCompatibleImage Methoden) gearbeitet hat ideal für mich, aber wenn ich eingesetzt, um einen server, funktioniert es nicht mehr, weil der server hatte keine Anzeige zugeordnet-alle anderen mit diesem problem können es zu beheben, indem Sie Folgendes verwenden:
BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
statt
BufferedImage bi = getCompatibleImage(w, h);
löschen und die getCompatibleImage Methode
(später Hinweis-es stellt sich heraus, das funktioniert gut für die meisten Bilder, aber ich habe einen Haufen von meinem Unternehmen, marketing-Abteilung, sind 32-bit Farbtiefe von jpeg-Bildern, und die Bibliothek wirft ein nicht unterstütztes Bild-format-Ausnahme für alle diejenigen, die 🙁 -- imagemagick /jmagick ab, um attraktiver Aussehen)
InformationsquelleAutor der Antwort Kem Mason
Habe ich eine Anwendung namens fotovault (sourceforge.net), die Bilder hochladen können, und erstellen Sie Miniaturansichten in java mit imagej-apis.
Bitte Lesen Sie mein blog unten
http://www.gingercart.com/Home/java-snippets/create-image-thumbnail-in-java-using-imagej-api
InformationsquelleAutor der Antwort Mouli
Ich gegangen durch einen blog, nach denen Sie haben folgende Optionen -
Hier ist link , gibt eine vollständige Antwort mit code-snippets.
InformationsquelleAutor der Antwort Gagan
Ich verwendet habe, Thumbnailator! Es löste mein problem mit zwei Zeilen code.
https://github.com/coobird/thumbnailator
InformationsquelleAutor der Antwort martins.tuga
Gibt es viele Bildverarbeitungs-frameworks zur Verfügung, Sie können dies tun, mit nur ein paar Zeilen. Das Beispiel unten erzeugt die Vorschaubilder in verschiedenen Auflösungen (entsprechend der angegebenen Breite als Referenz) mit Marvin Rahmen. Die drei Vorschaubilder generiert wurden, 92 ms.
Eingang:
Ausgabe:
InformationsquelleAutor der Antwort Gabriel Ambrósio Archanjo
Einfache Weise erstellen Sie eine Miniaturansicht, ohne Sie dabei zu dehnen oder in eine Bibliothek. Arbeitet mit Transparenz bei pngs, zu.
InformationsquelleAutor der Antwort Johannes J
Habe ich writtena util-Klasse mit statischen Methoden, die vor Jahren mit JAI. Java Advanced Imaging-API ist die zuverlässigste API in Java Umgang mit Bildern. Es ist vector interpolation ist die nächste Sache zu Photoshop in der Java-Welt. Hier ist einer von Ihnen:
InformationsquelleAutor der Antwort mike oganyan
Ich weiß, das ist ein ziemlich Alter post. Ich habe auf der Suche für eine Lösung zu generieren, die Miniatur, so dass am Ende mit dieser
wenn Sie für mobile würde vorschlagen, setzen Sie die Skalierung auf 0,45
https://github.com/coobird/thumbnailator
Dies ist sicherlich sehr viel schneller mit dem Graphics2D als getestet haben das beide Optionen.
InformationsquelleAutor der Antwort Athar