Below code snippet is use to scale image in J2ME. It takes the new width and height and scales as per aspect ratio.

public static Image scale(Image original, int newWidth, int newHeight)
{
    int[] rawInput = new int[original.getHeight() * original.getWidth()];
    original.getRGB(rawInput, 0, original.getWidth(), 0, 0, original.getWidth(),
                                             original.getHeight());
    int[] rawOutput = new int[newWidth*newHeight];
    int YD = (original.getHeight() / newHeight) * original.getWidth()
                                  - original.getWidth();
    int YR = original.getHeight() % newHeight;
    int XD = original.getWidth() / newWidth;
    int XR = original.getWidth() % newWidth;
    int outOffset= 0;
    int inOffset= 0;
    for (int y= newHeight, YE= 0; y > 0; y--){
         for (int x= newWidth, XE= 0; x > 0; x--){
            rawOutput[outOffset++]= rawInput[inOffset];
            inOffset+=XD;
            XE+=XR;
            if (XE >= newWidth){
                XE-= newWidth; inOffset++;
            }
        }
       inOffset+= YD;
       YE+= YR;
       if (YE >= newHeight){
             YE -= newHeight;
             inOffset+=original.getWidth();
       }
   }
    return Image.createRGBImage(rawOutput, newWidth, newHeight, false);
 }
}
This article is about: Code Sample, J2ME,

Stacktips

StackTips provides programming tutorials, how-to guides and code snippets on different programming languages. Follow us on Twitter

Discussions

Please note: We reserve the right to delete comments that contains snarky remarks, offensive or off-topic. To know more read our comments policy.