Как создать квадратное растровое изображение из прямоугольного растрового изображения в Android

По сути, у меня есть прямоугольное растровое изображение и я хочу создать новое растровое изображение с квадратными размерами, которое будет содержать прямоугольное растровое изображение внутри него.

Так, например, если исходное растровое изображение имеет ширину: 100 и высоту: 400, я хочу новое растровое изображение с шириной: 400 и высотой: 400. Затем нарисуйте исходное растровое изображение по центру этого нового растрового изображения (см. Прилагаемое изображение для лучшего понимания).

Мой код ниже создает квадратное растровое изображение нормально, но исходное растровое изображение не рисуется в нем. В результате ям осталось с растровым изображением, которое полностью черным.

Вот код:

Bitmap sourceBitmap = BitmapFactory.decodeFile(sourcePath);

Bitmap resultBitmap= Bitmap.createBitmap(sourceBitmap.getHeight(), sourceBitmap.getHeight(), Bitmap.Config.ARGB_8888);

Canvas c = new Canvas(resultBitmap);

Rect sourceRect = new Rect(0, 0, sourceBitmap.getWidth(), sourceBitmap.getHeight());
Rect destinationRect = new Rect((resultBitmap.getWidth() - sourceBitmap.getWidth())/2, 0, (resultBitmap.getWidth() + sourceBitmap.getWidth())/2, sourceBitmap.getHeight());
c.drawBitmap(resultBitmap, sourceRect, destinationRect, null);

// save to file
File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "MyApp");
File file = new File(mediaStorageDir.getPath() + File.separator + "result.jpg");
try {
    result.compress(CompressFormat.JPEG, 100, new FileOutputStream(file));
} catch (FileNotFoundException e) {
    e.printStackTrace();
}

Любая идея, что яя делаю неправильно?

Ответы на вопрос(2)

Ваш ответ на вопрос