0

そう..元の画像の色をスプライトに置き換えて、PNG画像を5倍大きい画像に変換するJavaクラス(Eclipse内)を作成しました..

実行可能な 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) {

        }
    }
}

助言がありますか?

4

1 に答える 1

1

プロジェクトに間違った JRE システム ライブラリが設定されている可能性があります。間違ったものを削除し、正しいものを追加する必要があります。

プロジェクトのプロパティ、Java ビルド パス、ライブラリ タブに移動し、既存の JRE システム ライブラリを削除して、独自のものを追加する必要があります。ここで答えを見てください。

Maven を使用している場合、pom.xml の設定が原因で問題が発生している可能性があることに注意してください。変更する必要があるため、プロジェクトのプロパティを毎回編集する必要はありません。

于 2013-10-16T17:49:09.910 に答える