2014-12-04 32 views
1

我正在用Java創建一個小程序。如果有一種方法可以「掃描」圖像以獲取某個像素的顏色值,我很感興趣。我寧願不必在屏幕上顯示圖像,但如果您發現這是唯一的方法,請告訴我。我希望能夠讓我的小程序掃描一個圖像文件,並根據圖像在屏幕上創建一個圖像。請儘量保持答案有點簡單,因爲我仍然習慣了所有的技術術語。如何獲取Java applet中像素的顏色以生成地圖?

感謝, 〜萊恩

我到目前爲止有:

import java.applet.Applet; 

public class LoadGuideImage { 

Applet applet; 

public LoadGuideImage(Applet applet){ 
    this.applet = applet; 
} 

public String getPixelColor(String pathToImage, int Xpix, int Ypix){ 
    int redC = 0; 
    int greenC = 0; 
    int blueC = 0; 

    //Get Pixel colors here and save to ints 

    return redC + " " + greenC + " " + blueC; 
} 

} 

你的意思是這樣的 '其他人'?:

 BufferedImage img = (BufferedImage) getImage(pathToImage); 

    System.out.println("Color: " + img.getRGB(3, 3)); 

的getImage方法:

public Image getImage(String path) { 

    Image img; 
    URL url = null; 

    try { 
     url = applet.getDocumentBase(); 
    } catch (Exception e){ 
     // TODO: handle exception 
    } 
    img = applet.getImage(url, path); 

    return img; 
} 
+0

請告訴我們你試過的東西,請。 – 2014-12-04 21:38:59

+0

我添加了迄今爲止我所擁有的內容。這並不是很多,因爲我不確定我應該用哪個方向來解決這個問題。 – Rane 2014-12-04 22:05:10

+2

1.加載您的圖像。 2.創建一個[BufferedImage](https://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html)。 3.將您的圖像繪製到它上面。 4.使用BufferedImage的'.getRGB(x,y)'獲得像素值 – 2014-12-04 22:08:28

回答

1

好的名字的方式。所以我前段時間處於同一個位置。

使用此爲您的獲取圖像的方法,只是調整它,並用它來你受益:

public class ImageLoader { 

    public BufferedImage load(String path){ 
     try { 
      return ImageIO.read(getClass().getResource(path)); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 

} 

我有一個一直讓使用單個像素加載這些像素,然後把瓦片,其中某些遊戲像素位於地圖中。如果你想從那裏拿到我的代碼片段,請讓我知道並與你聯繫:P

+0

謝謝!你也有一個有趣的名字。我已經看到'ImageIO.read'經常出現在我如何做我要求做的事情上。我會使用它,但Eclipse給我一個錯誤,指出'ImageIO無法解析'。我複製了上面的方法。我只刪除了'公共類ImageLoader {'位。 (以及最後的結尾)你知道爲什麼嗎?謝謝您的回答! – Rane 2014-12-05 01:41:58

+0

對不起。請放棄。我能夠讓Eclipse識別ImageIO。謝謝;你解決了這個問題! – Rane 2014-12-05 01:49:39

+0

沒問題,我很樂意幫忙:D – PsychedelicPelican 2014-12-06 19:39:25

相關問題