4

Google と StackOverflow で長い間解決策を探してきましたが、まだ解決策が見つからないため、これは重複した質問ではありません。

私はこれらの2つの画像を持っています:

拡大画像

小さい画像

これらは、同じプレフィックスと同じ形式の同じ Web サイトからの 2 つの画像です。唯一の違いはサイズです。前者は大きく、後者は小さくなっています。

両方の画像をローカル フォルダーにダウンロードし、Java を使用してそれらを BufferedImage オブジェクトに読み込みました。しかし、BufferedImages をローカル ファイルに出力すると、最初の画像はほとんど赤く、2 番目の画像は通常 (オリジナルと同じ) であることがわかりました。コードの何が問題になっていますか?

byte[] rawData = getRawBytesFromFile(imageFilePath); // some code to read raw bytes from image file
ImageInputStream iis = ImageIO.createImageInputStream(new ByteArrayInputStream(rawData));
BufferedImage img = ImageIO.read(iis);
FileOutputStream fos = new FileOutputStream(outputImagePath, false);
ImageIO.write(img, "JPEG", fos);
fos.flush();
fos.close();

PS: GIMP を使用して最初の画像を開き、カラー モードが「sRGB」で、アルファやその他のものがないことを検出しました。

4

2 に答える 2