0
私は、この関数を書いたように、のjpg画像を回転させる必要がある
BufferedImage rotate(BufferedImage bufferedImage) {
AffineTransform tx = new AffineTransform();
tx.rotate(Math.PI/2.0, bufferedImage.getWidth()/2, bufferedImage.getHeight()/2);
AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR);
return op.filter(bufferedImage, null);
}
私はそれらをファイルから画像を読み書きするImageIOでを使用します。
String [] photos = { "IMG_1998.JPG" , "IMG_1999.JPG" ,"IMG_2001.JPG" ,"IMG_2002.JPG" ,"IMG_2003.JPG"};
for(int i=0; i<photos.length-1; i++) {
BufferedImage nextImage = rotate(ImageIO.read(new File("d:/gif/" + photos[i])));
ImageIO.write(nextImage, "JPG", new File("d:/gif/A_" + photos[i]));
}
しかし、私が見たときに出力イメージファイル、それらはすべて陰性として表示されます。 (私はここに画像を添付することができればいいと思う)誰かが間違ってどこを指すことができますか?
おかげで、
アレックス@ haraldkさんのコメントのように
ほとんどの場合、あなたのJPEGはアルファチャンネル付きのRGBとして保存されており、ほとんどのソフトウェアはこれをCMYK(したがって、 "反転"または "ネガティブ"の色)として解釈します。明示的な宛先( 'null'ではなく)を' op.filter(...) 'に渡して、これが' TYPE_3BYTE_BGR'または 'TYPE_INT_RGB'画像であることを確認してください。 – haraldK
ありがとう@haraldk、私は解決策を見つけたが、理由を知らなかった。今私は理由を理解する:) – user1941319