Привет, ребята, я работаю над игрой j2ME для мобильных телефонов, поддерживающих Java. Я пытаюсь масштабировать прозрачный 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
Моя ошибка, опубликует другой ответ. –