Alternative zu import com.sun.image.codec.jpeg.JPEGCodec ?

Status
Nicht offen für weitere Antworten.

el_vital

Aktives Mitglied
Hallo,

ich möchte ein Image oder BufferedImage als JPEG mit einer Bestimmten Auflösung (in DPI) abspeichern. Diese Informationen stehen ja in den EXIF Daten. In ImageIO gibt es keine Funktion um die Auflösung zu verändern. Jetzt schreibe ich erst das Bild mit ImageIO, dann lese ich die EXIF Daten aus und speichere das Bild mit geänderten Auflösungseintrag erneut ab. Das Funktioniert zwar, aber beim kompilieren kommt die Warnung:
warning: com.sun.image.codec.jpeg.JPEGCodec is Sun proprietary API and may be removed in a future release

deswegen würde ich von com.sun. Sachen gerne Abstand halten. Aber ich finde einfach keine andere Möglichkeit um die Auflösung in den EXIF-Daten zu ändern.

Hier ist mein bisherige Code:




Code:
try {
      File ffile = new File(fd.getDirectory() + File.separator + fd.getFile());
      try {
            ImageIO.write((RenderedImage) ImgTemp, "jpg", ffile);
            } catch (IOException ex) {
            System.out.println("Bild schreiben funtkioniert nicht");
            Logger.getLogger(Passbild.class.getName()).log(Level.SEVERE, null, ex);
            }

       ImageReader reader = ImageIO.getImageReadersByFormatName("jpeg").next();
       reader.setInput(new FileImageInputStream(ffile), true, false);
       IIOMetadata data = reader.getImageMetadata(0);

       BufferedImage output = toBufferedImage(ImgTemp, BufferedImage.TYPE_INT_RGB);
       Element tree = (Element) data.getAsTree("javax_imageio_jpeg_image_1.0");
       Element jfif = (Element) tree.getElementsByTagName("app0JFIF").item(0);

       for (int i = 0; i < jfif.getAttributes().getLength(); i++) 
      {
           Node attribute = jfif.getAttributes().item(i);
           System.out.println(attribute.getNodeName() + "=" + attribute.getNodeValue());
       }
       
       FileOutputStream fos = new FileOutputStream(ffile);
       JPEGImageEncoder jpegEncoder = JPEGCodec.createJPEGEncoder(fos);
       JPEGEncodeParam jpegEncodeParam = jpegEncoder.getDefaultJPEGEncodeParam(output);
       jpegEncodeParam.setDensityUnit(JPEGEncodeParam.DENSITY_UNIT_DOTS_INCH);
       jpegEncodeParam.setXDensity(300);
       jpegEncodeParam.setYDensity(300);
       jpegEncoder.encode(output, jpegEncodeParam);
       fos.close();
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Alternative zu ChoiceBox in SceneBuilder Spiele- und Multimedia-Programmierung 0
Kenan89 Alternative zu Thread Runnable Spiele- und Multimedia-Programmierung 2
T Media Framework oder Alternative gesucht! Spiele- und Multimedia-Programmierung 9
W Drag and Drop oder Alternative? Spiele- und Multimedia-Programmierung 3
P 2D Game - Alternative zur TileMap? Spiele- und Multimedia-Programmierung 2
T drawstring alternative Spiele- und Multimedia-Programmierung 4
S Java als Serverseitige Alternative zu PHP Spiele- und Multimedia-Programmierung 8
J schnellste alternative um in java zu "zeichnen" Spiele- und Multimedia-Programmierung 17
B j3d import von .obj Spiele- und Multimedia-Programmierung 5
M [JME3] Jmonkey Engine und Wavefront import aus Blender Spiele- und Multimedia-Programmierung 3
X Frage zu Import von CAD Zeichnungen Spiele- und Multimedia-Programmierung 4
T Position eines Image verändern mithilfe eines Timers Spiele- und Multimedia-Programmierung 6
K Video: Per Image Information Spiele- und Multimedia-Programmierung 3
M Image unpainten Spiele- und Multimedia-Programmierung 3
B Bild ohne Image auf die Festplatte streamen Spiele- und Multimedia-Programmierung 4
X Android Slick AE Image Pfad Spiele- und Multimedia-Programmierung 3
A Drehen von einem Image Spiele- und Multimedia-Programmierung 4
C Mouseover Area genau wie Image Spiele- und Multimedia-Programmierung 8
L Slick-Image aus byte-array erzeugen Spiele- und Multimedia-Programmierung 2
0 2D Spiel Welt scrollen bzw Image erweitern Spiele- und Multimedia-Programmierung 2
T jME3: awt.Image <-> jME3.Image Spiele- und Multimedia-Programmierung 7
F nur Ausschnitt eines Image zeichnen Spiele- und Multimedia-Programmierung 9
F Hintergrund bei Image entfernen Spiele- und Multimedia-Programmierung 4
S Image-Einbindung Spiele- und Multimedia-Programmierung 5
StrikeTom .gif animation als image abspielen Spiele- und Multimedia-Programmierung 2
T Glüh effekt um Image Spiele- und Multimedia-Programmierung 9
radiac Aktuelles ScreenBild als Image? Spiele- und Multimedia-Programmierung 6
Stillmatic1985 Buffered Image drucken Spiele- und Multimedia-Programmierung 1
P Culling von Image-Objekten Spiele- und Multimedia-Programmierung 3
E JPCT background image Spiele- und Multimedia-Programmierung 3
P Grosses Bufferd Image Drucken Print API Spiele- und Multimedia-Programmierung 3
G Image drucken Spiele- und Multimedia-Programmierung 17
S Image will nicht laden Spiele- und Multimedia-Programmierung 3
A Image in BufferedImage konvertieren Spiele- und Multimedia-Programmierung 2
O Image dynamisch erstellen. Spiele- und Multimedia-Programmierung 6
G Punkt in Image auf Transparenz prüfen Spiele- und Multimedia-Programmierung 6
G Bereich im Image löschen Spiele- und Multimedia-Programmierung 4
H image.setRGB() zeichnet falsch Spiele- und Multimedia-Programmierung 3
R Transparente Farbe von (Buffered) Image Spiele- und Multimedia-Programmierung 10
D Welcher Image Typ am besten für 2D-Spiele geeignet? Spiele- und Multimedia-Programmierung 5
O Image konvertieren in monochrom scharz/weiß Spiele- und Multimedia-Programmierung 3
F Image eines bestimmten Bereichs eines JPanels erstellen Spiele- und Multimedia-Programmierung 4
T Spiel als Vollbild starten mit Image als HIntergrund Spiele- und Multimedia-Programmierung 8
O transparente farbe in Image mit Graphics Spiele- und Multimedia-Programmierung 8
S Image to BufferedImage Spiele- und Multimedia-Programmierung 3
D Image.getGraphics() in einem Frame Spiele- und Multimedia-Programmierung 4

Ähnliche Java Themen

Neue Themen


Oben