2015-10-22 3 views
0

Я попробовал следующий способ конвертировать арабский текст в растровое изображение на Android. Но функция всегда возвращает null. Может ли кто-нибудь сказать мне, что происходит?arabic text to bitmap conversion

мой String = «نقد»

public Bitmap StringToBitMap(String encodedString) { 
    try { 
     byte[] encodeByte1 = encodedString.getBytes("UTF-8"); 
     String base64String = Base64.encodeToString(encodeByte1, Base64.DEFAULT); 
     byte[] encodeByte = Base64.decode(base64String, Base64.DEFAULT); 
     Bitmap bitmap = BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length); 
     return bitmap; 
    } catch (Exception e) { 
     e.getMessage(); 
     return null; 
    } 
} 
+2

должен быть смешной вопрос когда-нибудь задавали на StackOverflow –

+0

@OfekRon, которые вы судить ???? –

ответ

0

Вы используете забавный способ сделать это (что, очевидно, не будет работать), в любом случае, вы можете использовать холст DrawText для ваших целей или же вы может создать TextView, установить этот текст, а затем получить кэш чертежа.

1

Это не работает. decode означает, что он будет распаковывать байты (обычно из форматов JPG или PNG).

Если вы хотите, чтобы текст был растровым, вы должны сами рисовать растровое изображение. Что-то похожее на это.

String text = "your text"; 
// create a text paint 
TextPaint tp = new TextPaint(); 
// configure text paint 
... see on the link below how to configure TextPaint 
// based on the configuration, get size in pixels 
int width = (int)tp.measureText(text); 
int height = text height ? 
// create bitmap with proper size 
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565); 
// create canvas to execute drawing 
Canvas canvas = new Canvas(bitmap); 
// draw on the bitmap 
canvas.drawText(text, 0, height/2, tp); 

TextPaint: https://developer.android.com/reference/android/text/TextPaint.html

+0

спасибо Будиус – Abhi