В моем приложении для Android у меня есть эта функция, которая создает новое растровое изображение из старого с помощью холста.Как изменить размер растрового изображения при рисовании на холсте?
private static Bitmap convert(Bitmap bitmap, Bitmap.Config config, int width, int height) {
Bitmap convertedBitmap = Bitmap.createBitmap(width, height, config);
Canvas canvas = new Canvas(convertedBitmap);
Paint paint = new Paint();
paint.setColor(Color.BLACK);
canvas.drawBitmap(bitmap, 0, 0, paint);
bitmap.recycle();
return convertedBitmap;
}
Проблема заключается в том, когда я рисую старый точечный рисунок на холсте, так как старый растровый больше по размеру, чем холст, только верхняя левая часть растрового изображения получает нарисованы на холсте. Есть ли способ, которым я могу это сделать, когда он рисует растровое изображение на холсте, он масштабирует растровое изображение, чтобы он идеально вписывался в холст?
Я не хочу изменять размер растрового изображения, используя createScaledBitmap
. Есть ли более быстрый способ?
ИЛИ Могу ли я сделать createScaledBitmap
, но сделать его изменчивым одновременно? Это то, что я пытаюсь сделать в целом, изменить размер и сделать изменчивым в одно и то же время.
Благодаря
Для параметров RectF требуются индексы x, y для левого, верхнего, правого и нижнего. Так разве это canvasWidth-1 и canvasHeight-1? – omega
Подумайте об этом как о своем мониторе компьютера: при условии, что это FHD (1920x1080), когда вы хотите заполнить весь экран, вы можете рисовать от (0, 0) до (1920, 1080), а не (0, 0) - (1919 , 1079), здесь та же логика. – Kai
Но это предполагает, что логика заключается в том, где она, но не включая эту длину. Но документация для нового RectF говорит 'Параметры: left Координата X левой части прямоугольника верхняя часть Координата Y верхней части прямоугольника правая Координата X правой части прямоугольника bottom Координата Y нижней части прямоугольника. – omega