システム画像の切り取り
2203 ワード
項目の中でピクチャーの裁断に用いて、2つの問題にぶつかって、ここで記録します大画像 を切り取る
トリミングが必要なピクチャは比較的大きいので、トリミング後に直接ピクチャデータを返すとoomが現れやすいので、ピクチャデータを返さないように設定するとともに、トリミング後のピクチャをsdカードに保存する一時ファイルを設定する必要があります.
最後に戻るoutputUriで切り取った画像情報を取得し、もちろんsdカードの画像ファイルtempに直接アクセスすることもできます.jpgトリミングボックスサイズ を設定する.
「aspectX」と「aspectY」は、それぞれ裁断ボックスの幅の高さを表します.なお、ここでの値はfloatなどの他のタイプを用いずに整数に設定することが望ましい.全体のスケールに設定すると、クリップボックスはスケールを固定できます.floatタイプは、テストの後、ほとんどの携帯電話がアスペクト比を固定できず、楽視携帯電話1台だけが固定できることが分かった.同時に等比を設定して、例えば1:1、ある携帯電話、1つの円形の裁断枠が現れて、しかしある携帯電話はできません
public static Intent cropRawPhoto(Uri uri, int aspectX, int aspectY, int output_X, int output_Y) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
//
intent.putExtra("crop", "true");
// aspectX , aspectY :
intent.putExtra("aspectX", aspectX);
intent.putExtra("aspectY", aspectY);
// outputX , outputY :
intent.putExtra("outputX", output_X);
intent.putExtra("outputY", output_Y);
intent.putExtra("return-data", false);
File file = new File(MainApp.getPhotoCachePath() + "temp.jpg");
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
Uri outputUri = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputUri);
return intent;
}
トリミングが必要なピクチャは比較的大きいので、トリミング後に直接ピクチャデータを返すとoomが現れやすいので、ピクチャデータを返さないように設定するとともに、トリミング後のピクチャをsdカードに保存する一時ファイルを設定する必要があります.
intent.putExtra("return-data", false);
ここでの「return-data」はfalseであり、ピクチャトリミング後のデータを返さないことを示す.trueはピクチャデータを返します.その後、トリミングしたデータをsdカードに出力します File file = new File(MainApp.getPhotoCachePath() + "temp.jpg");
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
Uri outputUri = Uri.fromFile(file);
最後に戻るoutputUriで切り取った画像情報を取得し、もちろんsdカードの画像ファイルtempに直接アクセスすることもできます.jpg
// aspectX , aspectY :
intent.putExtra("aspectX", aspectX);
intent.putExtra("aspectY", aspectY);
「aspectX」と「aspectY」は、それぞれ裁断ボックスの幅の高さを表します.なお、ここでの値はfloatなどの他のタイプを用いずに整数に設定することが望ましい.全体のスケールに設定すると、クリップボックスはスケールを固定できます.floatタイプは、テストの後、ほとんどの携帯電話がアスペクト比を固定できず、楽視携帯電話1台だけが固定できることが分かった.同時に等比を設定して、例えば1:1、ある携帯電話、1つの円形の裁断枠が現れて、しかしある携帯電話はできません