Получение изображения из ImageView вместо Drawable - PullRequest
0 голосов
/ 12 апреля 2019

Обратите внимание, что я новичок. В процессе обучения

Прямо сейчас, что делает этот код? Он читает изображение из прорисовки, а затем получает текст из него, используя Google Vision.

 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 - это то место, где «change» - это имя моего изображения. Теперь я хочу заменить изображение на изображение, загруженное в ImageView.

Любая помощь будет работать.

Ответы [ 3 ]

0 голосов
/ 12 апреля 2019

Вы можете получить Bitmap из изображения, например,

Drawable dr = ((ImageView) imView).getDrawable();
Bitmap bmp =  ((GlideBitmapDrawable)dr.getCurrent()).getBitmap();
0 голосов
/ 12 апреля 2019

если вы хотите получить изображение из нарисованного, вы можете попробовать это:

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;
0 голосов
/ 12 апреля 2019

Вы можете просто использовать ImageView.getDrawable(), чтобы получить изображение из ImageView.Тем не менее, drawable не обязательно является BitmapDrawable (я думаю, что changing drawable есть).

Чтобы получить фактическое растровое изображение DrawView ImageView, вам, возможно, придется посмотреть немного дальше, о том, как создатьрастровое изображение из Android-Drawable.На это есть много ответов в StackOverflow, поэтому я не буду повторять это здесь.

По сути, он создает растровое изображение и холст, а затем позволяет Drawable рисовать себя в растровое изображение через холст.

...