Я сохранил изображение из Activity1 во внутреннюю память в формате png с размерами 960 * 960, размер 5,8 КБ. Из галереи снова извлекаем то же изображение 960 * 960 5,8 КБ в Activity2 того же приложения. Теперь, когда я сохраняю то же изображение из этого Activity2 в свою галерею, теперь детали изображения составляют 960 * 960 и 4,8 КБ. Это мешает мне получить информацию о пикселях из изображения Activity2, что является основным требованием моего приложения. Мне нужны предложения, что я могу сделать, чтобы сохранить и получить изображение того же размера.
Заранее спасибо..
это код для сохранения изображения из действия 1.
public void saveImage(Bitmap bitmap){
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/My folder to save");
String receiverN = receiverName.getText().toString();
myDir.mkdirs();
//name convention--------------------------------------------->>
Calendar c = Calendar.getInstance();
String month, day, year, hour, minute, second;
month = ""+ (c.get(Calendar.MONTH)+1);
day = "" + c.get(Calendar.DAY_OF_MONTH);
year = "" + c.get(Calendar.YEAR);
hour = ""+c.get(Calendar.HOUR_OF_DAY);
if(hour.equals("0")) hour = "0"+hour;
minute = "" + c.get(Calendar.MINUTE);
int seconds = c.get(Calendar.SECOND);
if (seconds<10) second = "0"+ seconds;
else second = ""+seconds;
String fname = receiverN + "-" + hour + ":" + minute + ":" + second + "_" + month + "-" + day + "-" + year +".png";
//name convention ends----------------------------------------->>
File file = new File (myDir, fname);
if (file.exists ()) file.delete ();
try {
FileOutputStream out = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
out.flush();
out.close();
String[] paths = {file.toString()};
String[] mimeTypes = {"/image/png"};
MediaScannerConnection.scanFile(this, paths, mimeTypes, null);
Toast.makeText(this, "Image Saved", Toast.LENGTH_LONG).show();
} catch (Exception e) {
e.printStackTrace();
}
}
Теперь я закрываю приложение и перехожу в галерею, где оно будет храниться в папке «Моя папка для сохранения» с размерами 960 * 960 пикселей и размером 5,8 КБ. Я поделюсь этим изображением со своим приложением, и оно попадет в Activity2 того же приложения. Здесь я хочу получить те пиксели, которые я обработал до вызова метода saveImage в Activity1. Некоторые пиксели дают мне одинаковые данные, а некоторые нет.
это код в Activity2 для получения изображения из геллери в Activity2.
onCreate{
Intent intent = getIntent();
String action = intent.getAction();
String type = intent.getType();
if (Intent.ACTION_SEND.equals(action) && type.startsWith("image/")){
try {
handleSendImage(intent);
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void handleSendImage(Intent intent) throws IOException {
Uri imageUri = intent.getParcelableExtra(Intent.EXTRA_STREAM);
if (imageUri != null) {
myImageBitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(),imageUri);
imageView.setImageBitmap(myImageBitmap);
}
}
Я сохранил изображение из этого действия2, также используя метод saveImage, чтобы наблюдать за изменением, и после сохранения оно показывает размеры 960 * 960 и 4,8 КБ вместо 5,8 КБ, которые изначально были сохранены из действия 1.
Таким образом, я понял, что не могу получить те пиксели, которые мне нужны, поэтому помогите мне сохранить и получить изображение без потерь.
Надеюсь, эта информация будет полезной, заранее спасибо.
saved an image from activity1 to gallery
. Нельзя сохранять изображения в приложении «Галерея», поскольку приложение «Галерея» — это приложение, а не место для хранения. Пожалуйста, перефразируйте. - person greenapps   schedule 31.03.2016public void saveImage(Bitmap bitmap)
. Вы не сказали. Вы также не сказали, откуда активность 2 извлекает изображение. Так много неясного. Пожалуйста, начните с файла изображения, если это возможно. - person greenapps   schedule 04.04.2016Now when I save the same image from this activity2 to my gallery
В вашу галерею? Что это такое?changed it
??? - person greenapps   schedule 04.04.2016