我已将一个图像从activity1保存到png格式的内部存储,尺寸为960 * 960,大小为5.8kb。从库再次检索相同的960 * 960 5.8kb图像到同一个应用程序的activity2。现在,当我将此活动2中的相同图像保存到我的图库时,图像详细信息为960 * 960和4.8kb。这阻止我从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.8kb。我将此图像分享到我的应用程序,此图像将登陆到相同应用程序的activity2。在这里,我希望在activity1中调用saveImage方法之前获取我处理的像素。 有些像素给了我相同的数据,有些则没有。
这是activity2中的代码,用于将图像从gellery获取到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.8kb而不是最初从activity1保存的5.8kb。
因此我认为我无法获得我想要的那些像素,所以请帮我保存并检索图像无损。
希望这些信息有用,请提前感谢。