java replace - Importieren Sie com.sun.image.codec.jpeg.*




jpegcodec (5)

Welches JDK verwendest du? Ich denke, dass dieses Paket keine Voraussetzung ist und nur in Suns JDK verfügbar sein wird. Diese Diskussion erklärt.

Möglicherweise können Sie die JAR-Datei herunterladen und sie separat in Ihre Pfaddatei einfügen, wenn Sie sie wirklich verwenden möchten.

Laut docs :

Beachten Sie, dass die Klassen im Paket com.sun.image.codec.jpeg nicht zu den Kern-Java-APIs gehören. Sie sind ein Teil von Suns JDK- und JRE-Distributionen. Obwohl andere Lizenznehmer möglicherweise diese Klassen verteilen möchten, können sich Entwickler nicht darauf verlassen, dass sie in Nicht-Sun-Implementierungen verfügbar sind. Wir erwarten, dass entsprechende Funktionen in einer Core-API oder Standard-Erweiterung zur Verfügung stehen.

Ich habe ein Java-Programm, wenn ich es kompiliere, bekomme ich den folgenden Fehler

[javac] ...\MyClass.java:33: package com.sun.image.codec.jpeg does not exist
[javac] import com.sun.image.codec.jpeg.*;
[javac] ^

Was kann ich tun ?

Wie schreibe ich eine Bilddatei jetzt richtig, wenn das com.sun-Paket veraltet ist?


Sieht so aus, als ob du etwas benutzt hast, das ersetzt wurde. Vielleicht bist du auf Java 7?

Hier ist etwas, das dies zu beschreiben scheint, und wo es zu finden ist, ist es richtiger Ersatz.


Ich hatte dieses Problem beim Kompilieren mit JDK 7. Seltsamerweise zeigte Eclipse diesen Fehler nicht, nur Javac tat es. Die Antwort kann in dieser -Antwort gefunden werden : javac verwendet eine spezielle Symboltabelle, die nicht alle Sun-proprietären Klassen enthält, und das Liefern von -XDignore.symbol.file lässt das Problem -XDignore.symbol.file .

Natürlich ist es eine viel bessere Lösung, den Code ohne Verwendung der proprietären Klassen neu zu schreiben, aber um JDK 7 schnell zu unterstützen, funktioniert diese Option.


Warum verwenden Sie Klassen im Paket com.sun.image.codec.jpeg ? Sie sollten diese Klassen nicht direkt verwenden: Warum sollten Entwickler keine Programme schreiben, die 'sun' Pakete aufrufen?

Was macht dein Programm? Wird versucht, ein JPG-Bild zu lesen oder zu schreiben? Das ist mit der ImageIO API sehr einfach. Siehe dieses Tutorial: Schreiben / Speichern eines Bildes .

Zusatz - Das Paket com.sun.image.codec.jpeg wurde in Java 7 entfernt, wie im Java SE 7 und JDK 7 Kompatibilitätshandbuch erwähnt .

Synopsis: Das nicht standardmäßige com.sun.image.codec.jpeg Paket wird zurückgezogen

Beschreibung: Das Paket com.sun.image.codec.jpeg wurde in JDK 1.2 (Dez 1998) als nicht standardmäßige Methode zum Laden und Speichern von JPEG-Bilddateien hinzugefügt. Dieses Paket war nie Teil der Plattformspezifikation und wurde aus der Java SE 7-Version entfernt. Die Java Image I / O-API wurde als Standard-API der JDK 1.4-Version hinzugefügt, sodass das Paket com.sun.image.codec.jpeg .


If you are interested in it being realtime, then what you need is to add in a pre-processing filter to determine what gets scanned with the heavy-duty stuff. A good fast, very real time, pre-processing filter that will allow you to scan things that are more likely to be a coca-cola can than not before moving onto more iffy things is something like this: search the image for the biggest patches of color that are a certain tolerance away from the sqrt(pow(red,2) + pow(blue,2) + pow(green,2)) of your coca-cola can. Start with a very strict color tolerance, and work your way down to more lenient color tolerances. Then, when your robot runs out of an allotted time to process the current frame, it uses the currently found bottles for your purposes. Please note that you will have to tweak the RGB colors in the sqrt(pow(red,2) + pow(blue,2) + pow(green,2)) to get them just right.

Also, this is gona seem really dumb, but did you make sure to turn on -oFast compiler optimizations when you compiled your C code?





java image-processing