皆さん、私は Java 対応携帯電話用の j2ME ゲームに取り組んでいます。次の方法で透明なPNGをスケーリングしようとしています:
// method derived from a Snippet from http://snippets.dzone.com/posts/show/3257
// scales an image according to the ratios given as parameters
private Image rescaleImage(Image image, double XRatio, double YRatio)
{
// the old height and width
int sourceWidth = image.getWidth();
int sourceHeight = image.getHeight();
// what the new height and width should be
int newWidth = (int)(XRatio * sourceWidth);
int newHeight = (int)(YRatio * sourceHeight);
Image newImage = Image.createImage(newWidth, newHeight);
Graphics g = newImage.getGraphics();
for (int y = 0; y < newHeight; y++)
{
for (int x = 0; x < newWidth; x++)
{
g.setClip(x, y, 1, 1);
int dx = (x * sourceWidth) / newWidth;
int dy = (y * sourceHeight) / newHeight;
g.drawImage(image, (x - dx), (y - dy), Graphics.LEFT | Graphics.TOP);
}
}
return Image.createImage(newImage);
}
画像を正しくスケーリングしますが、残念ながら、メソッドによって返された画像の透明度が失われているようです。私はこれらの概念にかなり慣れていないので、どんな助けでも大歓迎です! Java 対応のモバイル デバイスで適切に表示するには、イメージ エディタではなく、コードで再スケーリングを行う必要があることに注意してください。
前もって感謝します!