Android: обрезать Speicifi c часть растрового изображения. «Bitmap.createBitmap» возвращает очень маленькое изображение - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть 200 * 50 (Ш х В) пикселей JPG. Я получаю его в виде растрового изображения.

Bitmap original = BitmapFactory.decodeResource(getResources(),R.drawable.myjpg);

Я хочу меньшую прямоугольную часть angular из 40 * 50 (Ш х В) пикселей, но она находится в центре изображения. Начальная точка обрезанной области находится в 70 пикселях слева.

То, что я делаю, это

Bitmap cropped = Bitmap.createBitmap(original, 70,0,40, 50);
// where template is Bitmap.createBitmap(Bitmap source, int x, int y, int width, int height)
imageView.setImageBitmap(cropped);

Документация: https://developer.android.com/reference/android/graphics/Bitmap#createBitmap (android .graphics.Bitmap ,% 20int,% 20int,% 20int,% 20int)

Но я не получаю желаемого результата. Я должен получить изображение размером 40 * 50 пикселей, но оно возвращает очень маленькое, может быть, изображение размером около 6 * 7 пикселей, которое начинается не с ширины 70 пикселей и высоты 0 пикселей. Он начинается где-то около 5 пикселей в ширину и 6 пикселей в высоту.

Я видел этот вопрос Bitmap.createBitmap (источник растрового изображения, int x, int y, int width, int height) возвращает неправильное растровое изображение который ближе всего к моему, но не решает мою проблему. Я не знаю, почему используется canvas, и он мне не нужен. Я просто хочу обрезать изображение.

Куда я иду не так? В чем может быть причина маленького изображения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...