OutOfMemoryError com seleção de imagem no Android. Como redimensionar a imagem antes de decodificá-la para bitmap?

Eu estou construindo um imagepicker no meu aplicativo Android, para o qual eu usei ocódigo de exemplo nesta página. Isso basicamente me dá um botão que abre a possibilidade de obter um arquivo do cartão SD, ou um, tirando uma foto. Depois de selecionar uma imagem, ela exibe a imagem usando um ImageView simples. Em geral, isso funciona perfeitamente bem; Posso selecionar uma imagem, clicar novamente no botão Selecionar imagem e selecionar outra imagem. Até aí tudo bem .. com arquivos pequenos que é.

O problema começa quando eu uso "arquivos maiores"; fotos que eu simplesmente tirei com a câmera embutida do telefone. Eu posso selecionar um, e isso funciona bem. Quando eu clico no botão Selecionar imagem novamente e seleciono outra imagem, recebo um OutOfMemoryError nessa linha (linha 75 da página vinculada à página):

bitmap = BitmapFactory.decodeFile(path);

Meu dispositivo de teste é bem moderno (Galaxy S4 Mini), então esse não deveria ser o problema. Como preciso enviar a imagem como uma string base64 para uma API para a qual preciso redimensioná-la de qualquer maneira, posso redimensionar a imagem usando algo assim:

Bitmap yourBitmap;
Bitmap resized = Bitmap.createScaledBitmap(yourBitmap, newWidth, newHeight, true);

Mas, infelizmente, para isso, primeiro preciso decodificar o arquivo, o que, na verdade, causa o problema.

Então minha pergunta é; Existe uma maneira que eu possa redimensionar a imagem antes de decodificá-lo para um bitmap? Todas as dicas são bem vindas!

questionAnswers(5)

yourAnswerToTheQuestion