Cómo escalar una imagen Graphics2D con relleno transparente

Estoy tratando de escribir un pequeño método que toma unaBufferedImage imagen y un nuevo ancho y alto y escala la imagen manteniendo la relación de aspecto agregando un borde transparente a la izquierda / derecha o superior / inferior según la imagen. La escala funciona bien, pero por mi vida no puedo hacer que la frontera sea transparente.

Hasta ahora tengo elsiguiente código publicado en pastebin.com Lo que hace bien la escalada.

He leído un montón de manuales y otras preguntas de SO sin éxito. He intentado numerosas permutaciones de rellenos, tipos compuestos, tipos de imágenes, etc. A veces obtengo un fondo azul, a veces blanco pero nunca parece ser transparente.

BufferedImage newImg = new BufferedImage(newWidth, newHeight, img.getType());
Graphics2D g = newImg.createGraphics();
g.setColor(Color.WHITE);
g.fillRect(0, 0, newWidth, newHeight);
g.drawImage(img, x, y, x + scaledWidth, y + scaledHeight, 0, 0,
    currentWidth, currentHeight, Color.WHITE, null);
g.dispose();
return newImg;

¿Alguna idea de qué llamada Graphics2D debo hacer para tener laColor.WHITE fondo ser transparentey dibujar la vieja imagen sobre la nueva? Gracias por cualquier ayuda.

Editar:

Resultó que el problema que tenía era que intentaba generar un color transparente con una imagen JPEG. Los archivos JPEG no admiten la transparencia. Duh

Respuestas a la pregunta(4)

Su respuesta a la pregunta