簡體   English   中英

從 ImageView 而不是 Drawable 獲取圖像

[英]Getting image from ImageView instead of Drawable

請注意,我是新手。 學習過程中

現在這段代碼在做什么? 它正在從 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.change 是“改變”是我的圖像名稱。 現在我想用我在 ImageView 上上傳的圖像替換圖像。

任何幫助都會起作用。

您可以簡單地使用ImageView.getDrawable()從 ImageView 獲取圖像。 但是,drawable 不一定是 BitmapDrawable(我認為您changing drawable 是)。

要獲得 ImageView 可繪制對象的實際位圖,您可能需要進一步了解如何從 Android 可繪制對象創建位圖。 StackOverflow 中有很多答案,這里不再贅述。

基本上,它創建了一個位圖和一個畫布,然后讓 Drawable 通過畫布將自己繪制到位圖中。

您可以像這樣從 imageview 獲取Bitmap

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

如果你想從 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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM