1

Phonegap 2.20 Android Screenshot プラグインを使用していますが、正常に動作します。今、270°回転した画像を保存したいのですが、私は Java/Android が初めてで、助けが必要です:

以下のようにEXIFデータを書き換えてみました

...

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyymmddhhmmss");
String filename = "Screenshot_" + dateFormat + ".png";
File f = new File(folder, filename); // System.currentTimeMillis()

//FileOutputStream fos = openFileOutput(f.getPath(), Context.MODE_PRIVATE);
FileOutputStream fos = new FileOutputStream(f);

// change image orientation to landscape                    
ExifInterface exif = new ExifInterface(filename);
exif.setAttribute(ExifInterface.TAG_ORIENTATION, "8");  // ExifInterface.ORIENTATION_ROTATE_270
exif.saveAttributes();

bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
//fos.close();

//Log.w(TAG, "TAG_ORIENTATION: " + exif.getAttribute(ExifInterface.TAG_ORIENTATION));

that.success(new PluginResult(PluginResult.Status.OK), id);

しかし、それは常にエラーをスローします

E/JHEAD(26853): 書き戻せません - すべて読み取れませんでした

ファイルの書き込みが完了するまで待つ必要があると思いますか?リスナー、コールバック、または slt はありますか?

4

1 に答える 1

3

最初に遭遇する問題は、ExifInterface が png ではなく jpg データしか読み取れないことです。次に、exif ヘッダーで方向パラメーターを設定できますが、実際には画像が回転しません。画像を適切に表示する方法について、画像を表示するプログラムにヒントを与えるだけです。

于 2012-11-28T15:51:46.657 に答える