Растровое изображение getPixels возвращает -1 для всего массива - PullRequest
0 голосов
/ 25 сентября 2011

создаю темп Bitmap, чтобы нарисовать Text, и я хочу получить Pixels, чтобы я мог манипулировать этими пикселями (я не показываю это изображение на экране). это код

Bitmap tempBitmap=Bitmap.createBitmap(200, 400, Bitmap.Config.ARGB_8888);//i've tested all Configs
Canvas tempCanvas=new Canvas(tempBitmap);
tempCanvas.drawColor(Color.WHITE);
tempCanvas.drawText("Hello", 0, 0, mPaint);//mPaint color set to Black

int[] pixels=new int[tempBitmap.getWidth() * tempBitmap.getHeight()];

tempBitmap.getPixels(pixels, 0, tempBitmap.getWidth(), 0, 0, tempBitmap.getWidth(), tempBitmap.getHeight());

но когда я печатаю все пиксели, они все -1 значение !! почему?

1 Ответ

2 голосов
/ 25 сентября 2011

Вы позиционируете базовую линию текста в (0,0), так что вы рисуете ее только в верхней части растрового изображения.Переместите это немного вниз.Вы можете использовать Paint.getTextBounds для измерения размера текста, а затем использовать возвращенную высоту для перемещения текста вниз.

...