Hello People of the java programming forums!
i am a big noob with java scripts and programming, but never the less have got my self in the deep end with this.
i intended to translate a java mobile game into english, i have managed to translate all but some images of menu icons, the files which contain the menu icons are in a strange format, it took me a long time just to open them, but i have opened them now and edited them, but i do not know how i can make them back into the format they were in they seem to be png files, from what i can see after open them in a text editor and reading the file header and after researching i have come to the conclousion they are bufferdimages with a transparent colour in rgb png. if anyone can help me create these images so that the game understands them i would be so grateful, ive been trying to learn java but i think i need to learn alot more just to even approch this problem, and i could be totely wrong.
i can upload the whole game and any files which may help determine the problem.
here is a code which i cant understand.
import java.awt.*; import java.awt.image.BufferedImage; import java.awt.image.PixelGrabber; import javax.swing.ImageIcon; public class Pictures { public static BufferedImage toBufferedImage(Image image) { if (image instanceof BufferedImage) { return (BufferedImage) image; } // This code ensures that all the pixels in the image are loaded image = new ImageIcon(image).getImage(); // Determine if the image has transparent pixels boolean hasAlpha = hasAlpha(image); // Create a buffered image with a format that's compatible with the // screen BufferedImage bimage = null; GraphicsEnvironment ge = GraphicsEnvironment .getLocalGraphicsEnvironment(); try { // Determine the type of transparency of the new buffered image int transparency = Transparency.OPAQUE; if (hasAlpha == true) { transparency = Transparency.BITMASK; } // Create the buffered image GraphicsDevice gs = ge.getDefaultScreenDevice(); GraphicsConfiguration gc = gs.getDefaultConfiguration(); bimage = gc.createCompatibleImage(image.getWidth(null), image .getHeight(null), transparency); } catch (HeadlessException e) { } // No screen if (bimage == null) { // Create a buffered image using the default color model int type = BufferedImage.TYPE_INT_RGB; if (hasAlpha == true) { type = BufferedImage.TYPE_INT_ARGB; } bimage = new BufferedImage(image.getWidth(null), image .getHeight(null), type); } // Copy image to buffered image Graphics g = bimage.createGraphics(); // Paint the image onto the buffered image g.drawImage(image, 0, 0, null); g.dispose(); return bimage; } public static boolean hasAlpha(Image image) { // If buffered image, the color model is readily available if (image instanceof BufferedImage) { return ((BufferedImage) image).getColorModel().hasAlpha(); } // Use a pixel grabber to retrieve the image's color model; // grabbing a single pixel is usually sufficient PixelGrabber pg = new PixelGrabber(image, 0, 0, 1, 1, false); try { pg.grabPixels(); } catch (InterruptedException e) { } // Get the image's color model return pg.getColorModel().hasAlpha(); } public static void main(String[] args) { String myImage = "smiley-icon-5.jpg"; Image image = java.awt.Toolkit.getDefaultToolkit().createImage(myImage); Pictures p = new Pictures(); p.toBufferedImage(image); } }
here is a example of the files,
one is the original, with the extension .p and saved in a zip file
and one is edited and saved in png format,
i need to convert the png file into the .p file,
the .p files will not open in any paint program i have found except irfanview,
Thank you in advance. Leo aka Vexst