旋转位图90度并保存

时间:2012-12-01 01:37:42

标签: java android matrix bitmap rotation

一切!我在这里完全失去了这个问题。它可能已被回答,但我找不到任何人要求我确切需要的东西。

我将一个jpeg文件保存到SDCARD,并希望以编程方式顺时针旋转90度,然后将其保存回卡片(覆盖原件或编辑后删除原件)。 jpeg加载到

File myFile;

有人可以告诉我如何解决这个问题吗?我想它与BitmapFactory和Matrices有关,但就像我说的那样:我在这里有点过头了!

谢谢!

2 个答案:

答案 0 :(得分: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;
}

注意:不要尝试我自己的

答案 1 :(得分:0)

我找到了答案!

对于JPG文件,显然您可以使用以下方法巧妙地编辑exif数据:

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

使用这种方法有什么缺点吗?据我所知,它似乎工作得很好。