gpt4 book ai didi

android - 通过 Intent 传递图像导致图像质量下降

转载 作者:行者123 更新时间:2023-11-30 00:04:53 25 4
gpt4 key购买 nike

当我从移动相机捕捉图像并将其保存到本地存储时,它的质量很好,但是当我在我的 Android 应用程序中获取此图像时,图像质量下降很多,甚至无法读取图片中的文字.我如何在不损失图片质量的情况下在 Android 应用程序中获取图像。

第一个 Activity

    public class MainActivity extends AppCompatActivity {
static final int REQUEST_IMAGE_CAPTURE = 1;
ImageButton imageButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

imageButton = findViewById(R.id.camera);

imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if(takePictureIntent.resolveActivity(getPackageManager()) != null){
startActivityForResult(takePictureIntent,REQUEST_IMAGE_CAPTURE);
}
}
});

}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == Activity.RESULT_OK) {

Bitmap photo = (Bitmap) data.getExtras().get("data");


//ByteArrayOutputStream stream = new ByteArrayOutputStream();

//photo.compress(Bitmap.CompressFormat.PNG,100 , stream);

//byte[] byteArray = stream.toByteArray();

Intent i = new Intent(MainActivity.this,PrintActivity.class);
i.putExtra("image",photo);
startActivity(i);
}
}
}

第二个 Activity

public class PrintActivity extends AppCompatActivity {
ImageView imageView;
Bitmap bmp;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_print);

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

imageView = findViewById(R.id.imageViewer);

// byte[] byteArray = getIntent().getByteArrayExtra("image");
//bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);

bmp = getIntent().getParcelableExtra("image");

imageView.setImageBitmap(bmp);

}

public void btnOnClickPrint(View v){
PrintHelper printHelper = new PrintHelper(this);
printHelper.setScaleMode(PrintHelper.SCALE_MODE_FIT);
printHelper.printBitmap("Image Print",bmp);
}
}

最佳答案

Bitmap photo = (Bitmap) data.getExtras().get("data");

那只是原图的缩略图。

因此,无论您做什么,它都会保留一个缩略图。

您应该以不同的方式使用该相机 Intent 。指示相机应用应将完整图片保存在何处(使用 EXTRA_STREAM),然后将该路径告知第二个 Activity,以便它可以加载原始图片。

关于android - 通过 Intent 传递图像导致图像质量下降,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49207693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com