0

すべて!私はこの質問でここで完全に途方に暮れています。答えられたかもしれませんが、私が必要としているものを正確に求めている人を見つけることができません。

jpegファイルをSDCARDに保存していて、プログラムで時計回りに90度回転させてから、カードに保存し直したいと思います(元のファイルを上書きするか、編集後に元のファイルを削除します)。jpegがロードされます

File myFile;

誰かがこれについてどうやって行くかについて私にアドバイスできますか?BitmapFactoryとMatricesと関係があると思いますが、私が言ったように、私はここで少し頭を抱えています!

ありがとう!

4

2 に答える 2

0

これを試して。

public Bitmap rotate(String file)
{
         Bitmap source = BitmapFactory.decodeFile("/sdcard/ChuckNorris.png");
         Bitmap b = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Config.ARGB_8888);

         Paint p = new Paint();
         p.setColor(Color.BLACK);

         Canvas f = new Canvas(b);
         f.drawBitmap(source, 0, 0, p);

         f.rotate(90);

         return b;
}

注:自分で試してはいけません

于 2012-12-01T02:34:14.260 に答える
0

答えが見つかりました!

JPGファイルの場合、次の方法を使用してexifデータを簡単に編集できるようです。

ExifInterface exif = new ExifInterface(myFile.getAbsolutePath());
exif.setAttribute(ExifInterface.TAG_ORIENTATION, "6");
exif.saveAttributes();

このアプローチを使用することの欠点はありますか?私が判断できる限り、それはかなりうまく機能しているようです。

于 2012-12-01T06:14:33.737 に答える