thisチュートリアルの後にPNG画像をJPEG画像に変換しようとしています。しかし、私は問題に遭遇します。結果として得られる画像にはピンクのレイヤーがあります。Java PNG to JPG Bug
誰にもこの問題の解決策がありますか?または、画像を希望の形式に変換するためにどのコードを使用する必要がありますか?
ありがとうございます!
thisチュートリアルの後にPNG画像をJPEG画像に変換しようとしています。しかし、私は問題に遭遇します。結果として得られる画像にはピンクのレイヤーがあります。Java PNG to JPG Bug
誰にもこの問題の解決策がありますか?または、画像を希望の形式に変換するためにどのコードを使用する必要がありますか?
ありがとうございます!
例えば、所望の大きさのBufferedImageを作成します。
BufferedImage img = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB)
を適切な背景色でそれを埋める:画像のグラフィックスの
img.getGraphics().fillRect(....)
コールのdrawImageをその背景の上に:
img.getGraphics().drawImage(image, 0, 0, null);
は、いつものようにJPGとしてあなたのイメージを書き留めます。
ありがとう! fillRectはジョブを完了しました。 –
選択したColorおよびnull ImageObserverを使用してgraphics.drawImageも参照してください。http://docs.oracle.com/javase/8/docs/api/java/awt/Graphics.html#drawImage-java.awt.Image-int -int-java.awt.Color-java.awt.image.ImageObserver- – m4rtin
どのカラーモードを使用していますか?バッファリングされたイメージオブジェクトを作成するときは、このオプションのような型を追加してみてください。
File newFile = new File(path + fileName + "." + Strings.FILE_TYPE);
Image image = null;
try {
image = ImageIO.read(url); // I was using an image from web
} catch (IOException e1) {
e1.printStackTrace();
}
image = image.getScaledInstance(width, height, Image.SCALE_SMOOTH);
try {
BufferedImage img = toBufferedImage(image);
ImageIO.write(img, "jpg", newFile);
} catch (IOException e) {
e.printStackTrace();
}
}
private static BufferedImage toBufferedImage(Image src) {
int w = src.getWidth(null);
int h = src.getHeight(null);
int type = BufferedImage.TYPE_INT_RGB; // other options
BufferedImage dest = new BufferedImage(w, h, type);
Graphics2D g2 = dest.createGraphics();
g2.drawImage(src, 0, 0, null);
g2.dispose();
return dest;
}
これまでのところ、私はチュートリアルの4行を持っています。そして私はそれらの変数が何か分からない:destとsrc。それらを宣言する方法? –
これは、コードスニペットのようなチュートリアルではありません。問題の画像をアップロードできますか?バイトの大きさはどれくらいですか? –
サンプル画像です:http://imageshack.us/photo/my-images/19/samplepngimage.png/ –