嘿伙计们,我正在为支持 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 的移动设备上正确显示,重新缩放需要在代码中完成,而不是在任何类型的图像编辑器中。
提前致谢!