所以..我已经制作了一个Java类(在Eclipse中),它将PNG图像转换为5倍大的图像,并使用精灵替换原始图像中的颜色。
我尝试将其导出到可运行的jar,但它不会允许它。
错误讯息: 描述资源路径位置类型 构建路径指定执行环境JavaSE-1.6。工作区中没有安装与此环境严格兼容的JRE。 ImageConverter构建路径JRE系统库问题
这是代码:
package Converter;
import java.io.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
public class changeImage {
public static void main(String args[]) throws IOException {
//Load map
File file = new File("src/Converter/rcs/BaseMap.png");
BufferedImage image = ImageIO.read(file);
File other = new File("src/Converter/rcs/BlankMap.png");
BufferedImage Theimage = ImageIO.read(other);
//Read sprites
File sprites = new File("src/Converter/rcs/Sprites.png");
BufferedImage spriteImg = ImageIO.read(sprites);
int r = spriteImg.getWidth() /5;
System.out.println(r);
int MySprites[][][] = new int[100][5][5];
for (int k = 0; k < r; k++) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
MySprites[k][j][i] = spriteImg.getRGB((k*5)+j, i);
}
}
}
//Converter
for (int i = 0; i < image.getHeight(); i++) {
for (int j = 0; j < image.getWidth(); j++) {
int color = image.getRGB(j, i);
System.out.println(color);
//-16777216 =(0)
//-12629812 =(1)
//-8421505 =(2)
//-14503604 =(3)
//-1237980 = 4)
//-16735512 =(5)
//-3584 =(6)
//-14066 =(7)
//-4856291 =(8)
//-32985 =(9)
//-3947581 =(10)
//-4621737 =(11)
//-7864299 =(12)
//-20791 =(13)
//-3620889 =(14)
//-6075996 =(15)
//-9399618 =(16)
//if black convert to sprite 0
if(color == -16777216) {
for(int a = 0; a <5; a++) {
for(int b = 0; b <5; b++) {
Theimage.setRGB((j*5)+b, (i*5)+a, MySprites[0][b][a]);
}
}
}
//if red convert to sprite 1
if(color == -12629812) {
for(int a = 0; a <5; a++) {
for(int b = 0; b <5; b++) {
Theimage.setRGB((j*5)+b, (i*5)+a, MySprites[1][b][a]);
}
}
}
//if black convert to sprite 2
if(color == -8421505) {
for(int a = 0; a <5; a++) {
for(int b = 0; b <5; b++) {
Theimage.setRGB((j*5)+b, (i*5)+a, MySprites[2][b][a]);
}
}
}
//if red convert to sprite 3
if(color == -14503604) {
for(int a = 0; a <5; a++) {
for(int b = 0; b <5; b++) {
Theimage.setRGB((j*5)+b, (i*5)+a, MySprites[3][b][a]);
}
}
}
//if black convert to sprite 4
if(color == -1237980) {
for(int a = 0; a <5; a++) {
for(int b = 0; b <5; b++) {
Theimage.setRGB((j*5)+b, (i*5)+a, MySprites[4][b][a]);
}
}
}
//if red convert to sprite 5
if(color == -16735512) {
for(int a = 0; a <5; a++) {
for(int b = 0; b <5; b++) {
Theimage.setRGB((j*5)+b, (i*5)+a, MySprites[5][b][a]);
}
}
}
//if black convert to sprite 6
if(color == -3584) {
for(int a = 0; a <5; a++) {
for(int b = 0; b <5; b++) {
Theimage.setRGB((j*5)+b, (i*5)+a, MySprites[6][b][a]);
}
}
}
//if red convert to sprite 7
if(color == -14066 ) {
for(int a = 0; a <5; a++) {
for(int b = 0; b <5; b++) {
Theimage.setRGB((j*5)+b, (i*5)+a, MySprites[7][b][a]);
}
}
}
//if black convert to sprite 8
if(color == -4856291 ) {
for(int a = 0; a <5; a++) {
for(int b = 0; b <5; b++) {
Theimage.setRGB((j*5)+b, (i*5)+a, MySprites[8][b][a]);
}
}
}
//if red convert to sprite 9
if(color == -32985) {
for(int a = 0; a <5; a++) {
for(int b = 0; b <5; b++) {
Theimage.setRGB((j*5)+b, (i*5)+a, MySprites[9][b][a]);
}
}
}
//if black convert to sprite 10
if(color == -3947581) {
for(int a = 0; a <5; a++) {
for(int b = 0; b <5; b++) {
Theimage.setRGB((j*5)+b, (i*5)+a, MySprites[10][b][a]);
}
}
}
//if red convert to sprite 11
if(color == -4621737) {
for(int a = 0; a <5; a++) {
for(int b = 0; b <5; b++) {
Theimage.setRGB((j*5)+b, (i*5)+a, MySprites[11][b][a]);
}
}
}
//if black convert to sprite 12
if(color == -7864299) {
for(int a = 0; a <5; a++) {
for(int b = 0; b <5; b++) {
Theimage.setRGB((j*5)+b, (i*5)+a, MySprites[12][b][a]);
}
}
}
//if red convert to sprite 13
if(color == -20791 ) {
for(int a = 0; a <5; a++) {
for(int b = 0; b <5; b++) {
Theimage.setRGB((j*5)+b, (i*5)+a, MySprites[13][b][a]);
}
}
}
//if black convert to sprite 14
if(color == -3620889) {
for(int a = 0; a <5; a++) {
for(int b = 0; b <5; b++) {
Theimage.setRGB((j*5)+b, (i*5)+a, MySprites[14][b][a]);
}
}
}
//if red convert to sprite 15
if(color == -6075996 ) {
for(int a = 0; a <5; a++) {
for(int b = 0; b <5; b++) {
Theimage.setRGB((j*5)+b, (i*5)+a, MySprites[15][b][a]);
}
}
}
//if black convert to sprite 16
if(color == -9399618) {
for(int a = 0; a <5; a++) {
for(int b = 0; b <5; b++) {
Theimage.setRGB((j*5)+b, (i*5)+a, MySprites[16][b][a]);
}
}
}
}
}
try {
// retrieve image
File outputfile = new File("src/Converter/rcs/saved.png");
ImageIO.write(Theimage, "png", outputfile);
} catch (IOException e) {
}
}
}
有什么建议吗?
答案 0 :(得分:1)
也许您为项目设置了错误的JRE系统库。您需要删除错误的一个,然后添加正确的一个。
您需要转到项目属性,Java构建路径,库选项卡,删除现有的JRE系统库并添加您的项目。看一下答案here。
请注意,如果您使用的是Maven,由于pom.xml中的设置可能会出现问题,因此您需要对其进行更改,这样您就不必每次都编辑项目属性。