我不知道,问题是剪切功能还是解码代码? : 我使用代码进行上传:
public void Upload(View view) {
Bitmap Bimg = ((BitmapDrawable) image1.getDrawable()).getBitmap();
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
Bimg.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
// Bimg.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream); // bad too
encodimg = Base64.encodeToString(byteArrayOutputStream.toByteArray(), Base64.DEFAULT);
我使用此代码剪切图像:
private void performCrop(){
try {
Intent cropIntent = new Intent("com.android.camera.action.CROP");
cropIntent.setDataAndType(picUri, "image/*");
cropIntent.putExtra("crop", "true");
cropIntent.putExtra("aspectX", 1);
cropIntent.putExtra("aspectY", 1);
cropIntent.putExtra("outputX", 512);
cropIntent.putExtra("outputY", 512);
cropIntent.putExtra("return-data", true);
startActivityForResult(cropIntent, PIC_CROP);
Toast toast = Toast.makeText(this, "Done", Toast.LENGTH_SHORT);
}
catch(ActivityNotFoundException anfe){
String errorMessage = "Soory - your device doesn't support the crop action!";
Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT);
toast.show();
}
}
<ImageView
android:onClick="Load_Picture"
android:id="@+id/imageview1"
android:background="@drawable/default_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
但我没有,xml中的图像大小是问题
从相机或Galerie中获取Bitmap:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if ( requestCode==111 && resultCode==RESULT_OK ){
// Uri uri = data.getData();
// imageView.setImageURI(uri);
imageView.setImageBitmap((Bitmap)data.getExtras().get("data"));
}
}
问题是切割方法,因为如果我在切割之前上传位图,我会得到非常好的质量。问题是:
performCrop(){
答案 0 :(得分:0)
您没有尝试将裁剪的图像发送到服务器。
而是在图像视图中显示裁剪的图像。然后,您从该imageview获取一个screendump并将其上传到服务器。当然帽子screendump质量很差。
相反,您应该上传从裁剪功能中获得的图像。
请比较所有相关图像的分辨率。