getScaledInstance
doesn't effect the original image, but instead returns a new instance of the image scaled to meet your parameters, make sure you are assigning the result to a variable, for example
image = image.getImage().getScaledInstance(30,30,whatever);
Then pass this to your what ever needs to use it
Beware, the quality of the operation is pretty poor, especially over a large range.
Take a look at
- Quality of Image after resize very low -- Java
- Java: maintaining aspect ratio of JPanel background image
- The Perils of Image.getScaledInstance()
For details and ideas.