从ImageView而不是Drawable获取图像

问题描述 投票:-1回答:3

请注意我是NEWBIE。在学习过程中

现在这个代码在做什么?它正在从drawable读取图像,然后使用谷歌视觉从中获取文本。

 Bitmap bitmap = BitmapFactory.decodeResource(getApplicationContext().getResources(), R.drawable.changing);
        TextRecognizer textRecognizer = new TextRecognizer.Builder(getApplicationContext()).build();

        if(!textRecognizer.isOperational()){
            Toast.makeText(getApplicationContext(), "", Toast.LENGTH_SHORT).show();
        }
        else
        {
            Frame frame = new Frame.Builder().setBitmap(bitmap).build();

            SparseArray<TextBlock> item = textRecognizer.detect(frame); //Yeh Frame Detect Kr rha he

            StringBuilder sb = new StringBuilder();
            for(int i = 0 ; i<item.size();i++){
                TextBlock myitem = item.valueAt(i);
                sb.append(myitem.getValue());
                sb.append("\n");
            }

注意:R.drawable.changing是“更改”是我的图像名称。现在我想用ImageView上传的图像替换图像。

任何帮助都可行。

java android android-imageview
3个回答
0
投票

您只需使用ImageView.getDrawable()从ImageView获取图像。但是,drawable不一定是BitmapDrawable(我认为你的changing drawable是)。

要获得ImageView的drawable的实际位图,您可能需要进一步了解如何从Android drawable创建位图。 StackOverflow中有很多答案,所以我在此不再赘述。

基本上,它创建了一个Bitmap和Canvas,然后让Drawable通过Canvas将自己绘制到Bitmap中。


0
投票

你可以像这样从imageview获取Bitmap

Drawable dr = ((ImageView) imView).getDrawable();
Bitmap bmp =  ((GlideBitmapDrawable)dr.getCurrent()).getBitmap();

0
投票

如果你想从drawable获取图像,你可以试试这个:

imageView.invalidate();
BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();
Bitmap bitmap = drawable.getBitmap();

如果您从资源库中获取图像:

if (requestCode == SELECT_FILE)
    {
        Uri selectedImageUri = data.getData();
            Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImageUri);
            imageview.setImageBitmap(bitmap);
    }

获取图像的另一个选择是来自相机:

if(requestCode == REQUEST_CAMERA)
        {
            Bundle bundle = data.getExtras();
            final Bitmap bmp = (Bitmap) bundle.get("data");
            imageview.setImageBitmap(bmp);
        }

其中SELECT_FILE和REQUEST_CAMERA只是一个整数:

int SELECT_FILE = 0;
int REQUEST_CAMERA = 1;
© www.soinside.com 2019 - 2024. All rights reserved.