package edu.wetisai.orc; import com.googlecode.tesseract.android.TessBaseAPI; import edu.wetisai.ocr.R; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.Align; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import android.widget.TextView; public class BitmapORC extends Activity { private ImageView image; private TextView tessResults; private Bitmap mTextBitmap; private TessBaseAPI baseApi; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_orc_bitmap); findView(); mTextBitmap = getTextImage("你好", 300, 300); image.setImageBitmap(mTextBitmap); baseApi = new TessBaseAPI(); baseApi.init("/mnt/sdcard/tesseract/", "chi_tra"); baseApi.setPageSegMode(TessBaseAPI.PageSegMode.PSM_SINGLE_LINE); baseApi.setImage(mTextBitmap); String outputText = baseApi.getUTF8Text(); tessResults.setText(outputText); } @Override protected void onDestroy() { mTextBitmap.recycle(); baseApi.end(); super.onDestroy(); } private void findView() { image = findViewId(R.id.image); tessResults = findViewId(R.id.results); } private Bitmap getTextImage(String text, int width, int height) { final Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); final Paint paint = new Paint(); final Canvas canvas = new Canvas(bmp); canvas.drawColor(Color.WHITE); paint.setColor(Color.BLACK); paint.setAntiAlias(true); paint.setTextAlign(Align.CENTER); paint.setTextSize(24.0f); canvas.drawText(text, width / 2, height / 2, paint); return bmp; } private <T extends View> T findViewId(int resId) { return (T) findViewById(resId); } }