2016-05-23 8 views
1

フォルダの中に写真をたくさん並べて、そのうちすぐにタイプAの写真とタイプBの写真が1つずつ並べられます。複数の画像を1つにまとめる

残念ながら、それらのうちのいくつかはローテーションする必要があり、標準のWindowsファイルエクスプローラを使用していました。

私が必要とするのは、最初のソース写真が2番目のの上に表示されるように、写真AとBの各ペアを新しい単一の写真に結合することです。どちらの写真も同じ幅です。すべての画像がWindows appで表示するときに同じ方向を持っているように見える、彼らは結果の写真では異なる回転しているが、残念ながら

File first = ...; 
    File second = ...; 

    BufferedImage A = ImageIO.read(first); 
    BufferedImage B = ImageIO.read(second); 

    int resultHeight = A.getHeight() + B.getHeight(); 
    int resultWidth = A.getWidth(); 
    BufferedImage combined = new BufferedImage(resultWidth, resultHeight, BufferedImage.TYPE_INT_ARGB); 


    Graphics g = combined.getGraphics(); 
    g.drawImage(A, 0, 0, null); 
    g.drawImage(B, 0, A.getHeight(), null); 
    g.dispose(); 

    ImageIO.write(combined, "PNG", new File(destDirectory, destName)); 

:ここ

はコードです。私は何かのフラグが無視されるようだと知っていますBufferedImage.

私はそのフラグを検出し、最終的には必要に応じて組み合わせて回転させることができますか?ありがとう!

答えて

1

MetadataExtractorを使用してイメージの向きを取得することをお勧めします。 this questionを参照してください。

+0

回転を抽出する場合は、[この回答]を使用することができます(http://stackoverflow.com/questions/9749121/java-image-rotation-with-affinetransform-outputs-black-image-but-works-well- whe)を押して画像を回転させます。 – fhofmann

+0

ありがとう!私はその図書館を使いました。 –

関連する問題