嘿夥計們,我正在爲java功能的手機j2ME遊戲工作。我試圖擴展一個透明的PNG以下方法:自定義方法來重新調整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的移動設備上正確顯示,重新縮放需要用代碼完成,而不是任何圖像編輯器。
在此先感謝!
我不認爲這個方法在J2ME中被支持,不過謝謝你的回覆! – jbabey 2010-07-08 20:19:50
我的錯誤,會發表另一個答案。 – 2010-07-09 12:11:34