[英]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.