public DisplayImage(boolean resize, boolean mapCountries) throws IOException { super("Province Map"); File mapProvinceFile = new File("map\\provinces.bmp"); BufferedImage mapProvinceImage = ImageIO.read(mapProvinceFile); File g = new File("unchanged.bmp"); ImageIO.write(mapProvinceImage, "bmp", g); System.out.println("Image Type: " + mapProvinceImage.getType()); byte[] pixels = (byte[])mapProvinceImage.getData().getDataElements(0, 0, mapProvinceImage.getWidth(), mapProvinceImage.getHeight(), null); int check1 = 0; int check2 = 0; int check3 = 0; int check4 = 0; long pixelTotalValue = 0; for (int i = 0; i < 150; i++) { for (int p = 0; p < pixels.length; p = p + 3) { if (mapCountries) { if (Victoria2Stats.provinceDefinitionArray.get(i).red == pixels[p]) { check2++; if (Victoria2Stats.provinceDefinitionArray.get(i).green == pixels[p+1]) { check3++; if (Victoria2Stats.provinceDefinitionArray.get(i).blue == pixels[p+2]) { pixels[p] = (byte)(Victoria2Stats.provinceDataTable[i].ownerColor.getRed()); pixels[p+1] = (byte)(Victoria2Stats.provinceDataTable[i].ownerColor.getGreen()); pixels[p+2] = (byte)(Victoria2Stats.provinceDataTable[i].ownerColor.getBlue()); check4++; } } } } pixelTotalValue = pixelTotalValue + pixels[p]; pixelTotalValue = pixelTotalValue + pixels[p+1]; pixelTotalValue = pixelTotalValue + pixels[p+2]; } } System.out.println("Check 2: " + check2); System.out.println("Check 3: " + check3); System.out.println("Check 4: " + check4); System.out.println("Pixel Total Value: " + pixelTotalValue); for (int p = 0; p < 2000; p++) { //System.out.println("Pixel Value: " + pixels[p]); } BufferedImage buffer = new BufferedImage(mapProvinceImage.getWidth(), mapProvinceImage.getHeight(), mapProvinceImage.getType()); DataBuffer dataBuffer = new DataBufferByte(pixels.length, 1); long bufferValue = 0; for (int v = 0; v < pixels.length; v++) { dataBuffer.setElem(v, pixels[v]); bufferValue = bufferValue + pixels[v]; } System.out.println("Buffer Value: " + bufferValue); SampleModel sampleModel = new ComponentSampleModel(DataBuffer.TYPE_BYTE, mapProvinceImage.getWidth(), mapProvinceImage.getHeight(), 3, mapProvinceImage.getWidth()*3, new int[]{0,1,2}); Raster raster = Raster.createRaster(sampleModel, dataBuffer, null); buffer.setData(raster); File f = new File("newFile.bmp"); mapProvinceImage = ImageUtils.verticalflip(buffer); ImageIO.write(mapProvinceImage, "bmp", f); ImageIcon ii = new ImageIcon(mapProvinceImage); JScrollPane jsp = new JScrollPane(new JLabel(ii)); getContentPane().add(jsp); setSize(800, 600); setVisible(true); }