2013-03-10 31 views
2

我试图让我的应用程序上传从手机相机拍摄的全画质图像。我有整个上传的东西工作,除了唯一的问题是,生成的图像是一个非常小的位图。我很想获得完整质量的图像。谁能帮我?这是我的代码。从相机获取完整质量图片并上传?

public class UploadActivity extends Activity { 

    public final static int CAMERA_REQUEST = 1888; 
    InputStream is; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_upload); 
     Button takePicture = (Button) findViewById(R.id.take_picture_button); 
     takePicture.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
       startActivityForResult(takePictureIntent, CAMERA_REQUEST);  
      } 
     }); 
     Button uploadButton = (Button) findViewById(R.id.send_button); 
     uploadButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

      } 
     }); 
    } 

    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     ImageView mImageView = (ImageView) findViewById(R.id.ivUserImage); 
     Bundle extras = data.getExtras(); 
     Bitmap mImageBitmap = (Bitmap) extras.get("data"); 
     mImageView.setImageBitmap(mImageBitmap); 
     new fileUpload().execute(mImageBitmap); 
    } 

    public class fileUpload extends AsyncTask<Object, Void, Void> { 
     @Override 
     protected Void doInBackground(Object... param) { 
      Bitmap bitmapOrg = (Bitmap) param[0]; 
      ByteArrayOutputStream bao = new ByteArrayOutputStream(); 
      bitmapOrg.compress(Bitmap.CompressFormat.JPEG, 90, bao); 
      byte[] ba = bao.toByteArray(); 
      String ba1=Base64.encodeBytes(ba); 

      ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
      nameValuePairs.add(new BasicNameValuePair("image",ba1)); 

      try { 
       HttpClient httpclient = new DefaultHttpClient(); 
       HttpPost httppost = new HttpPost("http://example.info/appserver/upload.php"); 
       httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
       HttpResponse response = httpclient.execute(httppost); 
       HttpEntity entity = response.getEntity(); 
       is = entity.getContent(); 
      } catch(Exception e){ 
       Log.e("log_tag", "Error in http connection "+e.toString()); 
      } 
      return null; 
     } 
    } 
} 
+0

你能告诉我你是怎么解决的质量problem..I也用同一种代码.. – HRCJ 2015-10-19 10:52:29

回答

0

当您使用阅读位图从额外的,你会得到图像的缩略图。

您可以在这里找到使用相机的一个很好的例子:https://stackoverflow.com/a/5071133/2045570

+0

它的工作原理。谢谢。 – 2013-03-11 00:09:47