Hola amigos, estoy trabajando en un juego j2ME para teléfonos celulares habilitados para Java. Estoy tratando de escalar un PNG transparente con el siguiente método:El método personalizado para cambiar la escala de un archivo PNG pierde transparencia
// 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);
}
Escala la imagen correctamente, por desgracia, me parece estar perdiendo la transparencia con la imagen que devuelve el método. Soy bastante nuevo en estos conceptos, ¡y cualquier ayuda sería muy apreciada! Tenga en cuenta que para mostrarse correctamente en cualquier dispositivo móvil compatible con Java, el cambio de escala debe hacerse en código, no en ningún tipo de editor de imágenes.
¡Gracias de antemano!
No creo que este método sea compatible con J2ME, ¡gracias por la respuesta! – jbabey
Mi error, publicará otra respuesta. –