Hey folks, Tôi đang làm việc trên một trò chơi j2ME cho java có khả năng điện thoại di động. Tôi đang cố gắng mở rộng PNG trong suốt theo phương pháp sau:Phương pháp tùy chỉnh để rescale một PNG mất tính minh bạch
// 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);
}
Tỷ lệ hình ảnh chính xác, rất tiếc là tôi dường như mất tính minh bạch với hình ảnh được phương thức trả về. Tôi khá mới mẻ với những khái niệm này, và bất kỳ sự trợ giúp nào cũng sẽ được đánh giá cao! Xin lưu ý rằng để được hiển thị chính xác trên bất kỳ thiết bị di động có khả năng java nào, việc rescaling cần được thực hiện bằng mã, không phải trong bất kỳ loại trình chỉnh sửa hình ảnh nào.
Cảm ơn trước!
Tôi không nghĩ phương pháp này được hỗ trợ trong J2ME, cảm ơn bạn đã trả lời! – jbabey
Lỗi của tôi, sẽ đăng một câu trả lời khác. –