Frage

Ich verwende sowohl das JAI-Medien-APIs und ImageMagick?

ImageMagick hat einige Skalierbarkeitsprobleme und die JNI basierte JMagick ist entweder nicht attraktiv. JAI hat eine schlechte Qualität der Ergebnisse, wenn Operationen im Vergleich zu ImageMagick Ändern der Größe zu tun.

Kennt jemand ein hervorragenden Werkzeuge entweder Open Source oder kommerzielle, die native Java und qualitativ hochwertige Ergebnisse liefern?

War es hilfreich?

Lösung

Es gibt ImageJ , die die

sein rühmt
  

weltweit am schnellsten reine Java-Bild   Verarbeitungsprogramm

Es kann als eine Bibliothek in einer anderen Anwendung verwendet werden. Es ist Architektur nicht brillant, aber es hat grundlegende Bildverarbeitungsaufgaben.

Andere Tipps

Ich weiß, diese Frage ist ziemlich alt, aber als neue Software kommt es einige neue Links zu Projekten erhalten hilft, die für Leute interessant sein könnte.

imgscalr reines Java-Bild (und einfache ops wie padding Skalieren, Beschneiden, Drehen, aufhellen / Dimmen, etc.) Bibliothek, die schmerzhaft ist einfach zu bedienen - eine einzige Klasse einer Reihe von einfachen Grafikoperationen besteht aus alle als definierten statische Methoden, die Sie ein Bild übergeben und wieder ein Ergebnis bekommen.

Das einfachste Beispiel für die Benutzung der Bibliothek würde wie folgt aussehen:

BufferedImage thumbnail = Scalr.resize(image, 150);

Und eine typische Verwendung Bildminiaturen mit ein paar Qualität zwickt und dergleichen könnte wie folgt aussehen zu generieren:

import static org.imgscalr.Scalr.*;

public static BufferedImage createThumbnail(BufferedImage img) {
    // Create quickly, then smooth and brighten it.
    img = resize(img, Method.SPEED, 125, OP_ANTIALIAS, OP_BRIGHTER);

    // Let's add a little border before we return result.
    return pad(img, 4);
}

Alle Bildverarbeitungsoperationen verwenden, um die rohe Java2D Pipeline (die Hardware auf große Plattformen beschleunigt werden) und den Schmerz zu rufen über JNI wie Bibliothek Streit in Ihrem Code nicht vorstellen.

imgscalr hat auch in Großproduktionen in ganz wenigen Stellen eingesetzt worden -. Die Einbeziehung der AsyncScalr Klasse macht es zum perfekten Drop-in für jede serverseitige Bildverarbeitung

Es gibt zahlreiche kleine Änderungen an Bildqualität, die Sie mit dem höchsten ULTRA_QUALITY Modus zwischen Geschwindigkeit und Qualität abzuwägen ein skalierte Ergebnis liefert, das besser aussieht als GIMP Lancoz3 Implementierung verwenden können.

Eine weitere gute Alternative: Marvin

Ich bin kein Java Kerl, aber OpenCV ist für meine Bedürfnisse. Nicht sicher, ob es Ihnen passt. Hier ist ein Java-Port, denke ich: http://docs.opencv.org/2.4/doc/ tutorials / Einführung / desktop_java / java_dev_intro.html

Verarbeitung neu, aber sehr, sehr gut.

Versuchen Sie Catalano Rahmen verwenden.

Eigenpunkte:

  • Architektur wie AForge.NET/Accord.NET.
  • Führen Sie in den beiden Umgebungen mit dem gleichen Code, Desktop und Android.
  • mehrere Filter parallel Enthält.
  • Entwicklung ist auf Volldampf.

Die Catalano Framework ist ein Framework für Scientific Computing für Java und Android. Das Projekt begann als Anfang Hafen der viele Merkmale des AForge.NET und Accord.NET Frameworks für .NET, ist aber mit erweiterten Funktionen stetig wachsender, die nun zwischen diesen Projekten gemeinsam genutzt werden.

Beispiel:

FastBitmap fb = new FastBitmap(bitmap);

Grayscale g = new Grayscale();
g.applyInPlace(fb);

Threshold t = new Threshold(120);
t.applyInPlace(fb);

bitmap = fb.toBitmap();

//Show the result

imo der beste Ansatz ist mit GraphicsMagick Bildverarbeitungssystem mit im4java als comand Zeilen-Schnittstelle für Java.

Es gibt viele Vorteile von GraphicsMagick, aber einer für alle:

  • wird GM verwendet Milliarden zu verarbeiten Dateien auf der größten Foto der Welt Websites (zum Beispiel Flickr und Etsy).

http://im4java.sourceforge.net/ - wenn Sie Linux laufen Forking eine neue Prozess ist nicht teuer.

Für die kommerzielle Tools, möchten Sie vielleicht Snowbound versuchen.

http://www.snowbound.com/

mit ihnen Meine Erfahrung ist etwas veraltet, aber ich fand ihren Java-Imaging API viel einfacher zu bedienen als JAI und viel schneller sein.

Ihre Kunden-Support und Code-Beispiele waren auch sehr gut.

RoboRealm Vision Software Liste JHLabs und NeatVision unter vielen anderen nicht-Java-basierten Bibliotheken.

Ich kann nicht sagen, dass es die „beste“ Bibliothek ist, aber ich denke, Sie dies ausprobieren können: http://algart.net/java/AlgART/ Es ist eine Open-Source-Java-Bibliothek, generalisierter „smart“ Arrays und Matrizen mit Elementen unterschiedlicher Typen unterstützte (von 1 Bit bis 64-Bit-Gleitkomma), einschließlich 2D-, 3D- und multidimensionalen Bildverarbeitung und anderen Algorithmen, die Arbeit mit Arrays und Matrizen. Leider jetzt besteht es nicht genug Demo und Beispiele, aber auf der anderen Seite ist es viel JavaDocs enthält. Es lag in der Basis kommerzieller Software (SIMAGIS) während mehrerer Jahre, aber jetzt ist es Open-Source.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top