Salve a tutti,
giroagando nel web ho trovato una funzione che mi aiuta in un progetto che sto sviluppando. In sostanza non fa altro che ridimensionare un'immagine.

Ve la posto qui. In realtà non mi è molto chiaro come funziona, vorrei che qualcuno mi desse qualche dettaglio su come è stata implementata.

private static Image resizeImage(Image src, int screenWidth, int screenHeight) {
int srcWidth = src.getWidth();
int srcHeight = src.getHeight();
Image tmp = Image.createImage(screenWidth, srcHeight);
Graphics g = tmp.getGraphics();
int ratio = (srcWidth << 16) / screenWidth;
int pos = ratio / 2;

// Horizontal Resize
for (int x = 0; x < screenWidth; x++) {
g.setClip(x, 0, 1, srcHeight);
g.drawImage(src, x - (pos >> 16), 0, Graphics.LEFT | Graphics.TOP);
pos += ratio;
}

Image resizedImage = Image.createImage(screenWidth, screenHeight);
g = resizedImage.getGraphics();
ratio = (srcHeight << 16) / screenHeight;
pos = ratio / 2;

//Vertical resize
for (int y = 0; y < screenHeight; y++) {
g.setClip(0, y, screenWidth, 1);
g.drawImage(tmp, 0, y - (pos >> 16), Graphics.LEFT | Graphics.TOP);
pos += ratio;
}

return resizedImage;
}