У меня есть 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, и он мне не нужен. Я просто хочу обрезать изображение.
Куда я иду не так? В чем может быть причина маленького изображения?