Ich mache ein Programm, wo ich extrahiere Pixel-Array aus einem Bild, ARGB-Werte herausnehmen. Und schreibe sie wieder zurück, um ein anderes Bild zu machen.Bildqualität reduziert (wird rötlich) als JPEG mit BufferedImage
BufferedImage imagebuffer = ImageIO.read(new File("C:\\Users\\Ramandeep\\Downloads\\w3.jpg"));
iw = imagebuffer.getWidth();
ih = imagebuffer.getHeight();
pixels = new int[iw * ih];
PixelGrabber pg = new PixelGrabber(imagebuffer, 0, 0, iw, ih, pixels, 0, iw);
pg.grabPixels();
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
image.setRGB(0, 0, width, height, pixels, 0, width);
ImageIO.write(image, "jpg", new File("C:\\Users\\Ramandeep\\Desktop\\out.jpg"));
ImageIO.write(image, "gif", new File("C:\\Users\\Ramandeep\\Desktop\\out.gif"));
ImageIO.write(image, "png", new File("C:\\Users\\Ramandeep\\Desktop\\out.png"));
Jetzt Ausgabe Bild für PNG und GIF gut aussehen, aber die Ausgabe jpg Bild stellt sich ziemlich rötlich.
Dies ist das Originalbild Und das ist der Ausgang jpg Bild
Jede Idee, was dieses verursachen könnte? Jeder Schub in die richtige Richtung wird geschätzt.
Was ist die Bildverarbeitung Ihr Versuch sollte erreichen? – user7185318
Nun, ich arbeite daran, eine einfache Textnachricht in das Bild unter Verwendung der LSB-Substitutionsmethode einzubetten. Aber vorher probiere ich einfach aus, die Pixel so zu schreiben, wie es in einem neuen Bild ist, um das aus dem Weg zu räumen. – Napstablook
Warum nicht Graphics verwenden? – user7185318