Search code examples
javaandroidfile-format

Convert text to image file on Android


I have a text document (.txt). I want to convert it to an image (.png or .jpg). For example, black text on white background. How can I do that programmatically?


Solution

  • this (untested) code should get you on the right track.

    void foo(final String text) throws IOException{
        final Paint textPaint = new Paint() {
            {
                setColor(Color.WHITE);
                setTextAlign(Paint.Align.LEFT);
                setTextSize(20f);
                setAntiAlias(true);
            }
        };
        final Rect bounds = new Rect();
        textPaint.getTextBounds(text, 0, text.length(), bounds);
    
        final Bitmap bmp = Bitmap.createBitmap(bounds.width(), bounds.height(), Bitmap.Config.RGB_565); //use ARGB_8888 for better quality
        final Canvas canvas = new Canvas(bmp);
        canvas.drawText(text, 0, 20f, textPaint);
        FileOutputStream stream = new FileOutputStream(...); //create your FileOutputStream here
        bmp.compress(CompressFormat.PNG, 85, stream);
        bmp.recycle();
        stream.close();
    }