我从画廊和相机拍摄图像 当我从相机上传图像时它失去了质量 但画廊图像具有实际质量
来自相机
来自画廊
这是我从相机和图库上传图片的代码
从cam获取图像
Intent in = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
File out = Environment.getExternalStorageDirectory();
String fileName=GetFileName().replace('.', ' ')+".png";
out = new File(out, fileName);
in.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(out));
startActivityForResult(in, cameraIdNotSdCard);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//from camera
wb.loadUrl(sendUrl);
if (requestCode == cameraIdNotSdCard) {
if (data != null && resultCode == RESULT_OK ) {
bm = (Bitmap) data.getExtras().get("data");
int width = 350;
int height = 400;
if (HomePage.permistionArray.length > 4) {
width = Integer.valueOf(HomePage.permistionArray[3]);
height = Integer.valueOf(HomePage.permistionArray[4]);
}
// Log.d("ddddddddddddd", width+":"+height);
Bitmap resizeBitmap = Bitmap.createScaledBitmap(bm, width,
height, true);
ByteArrayOutputStream boas = new ByteArrayOutputStream();
// bm.compress(Bitmap.CompressFormat.PNG, 100, boas);
resizeBitmap.compress(Bitmap.CompressFormat.JPEG ,100, boas);
byte[] b = boas.toByteArray();
imageS = Base64.encodeToString(b, 0);
// call custom class which class web service in background which
// save image ..
new imageSaveClass(getApplicationContext()).execute();
}
}
// form gallery result
if (requestCode == galleryRsultCode && resultCode == RESULT_OK
&& data != null) {
Uri selectedImage = data.getData();
String[] filePathColum = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,
filePathColum, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColum[0]);
String picturePath = cursor.getString(columnIndex);
Bitmap myBitmap = BitmapFactory
.decodeFile(picturePath);
if(myBitmap!=null)
{
int width = 350;
int height = 400;
if (HomePage.permistionArray.length > 4) {
width = Integer.valueOf(HomePage.permistionArray[3]);
height = Integer.valueOf(HomePage.permistionArray[4]);
}
// Log.d("ddddddddddddd", width+":"+height);
Bitmap resizeBitmap = Bitmap.createScaledBitmap(myBitmap, width,
height, true);
ByteArrayOutputStream boas = new ByteArrayOutputStream();
// bm.compress(Bitmap.CompressFormat.PNG, 100, boas);
resizeBitmap.compress(Bitmap.CompressFormat.PNG, 100, boas);
byte[] b = boas.toByteArray();
imageS = Base64.encodeToString(b, 0);
// call custom class which class web service in background which
// save image ..
new imageSaveClass(getApplicationContext()).execute();
}
}
我从画廊和相机拍摄图像 当我从相机上传图像时它失去了质量 但画廊图像具有实际质量
我如何通过相机提高质量
答案 0 :(得分:0)
尝试更改压缩格式。
您正在使用相机:
resizeBitmap.compress(Bitmap.CompressFormat.JPEG ,100, boas);
对于Galery:
resizeBitmap.compress(Bitmap.CompressFormat.PNG ,100, boas);
另请阅读this。