2014-12-04 2 views
1

Я работаю с Java, чтобы создать небольшой апплет. Меня интересует, есть ли способ «сканировать» изображение, чтобы получить значения цвета определенного пикселя. Я бы предпочел не показывать изображение на экране, но если вы обнаружите, что это единственный способ, скажите, пожалуйста. Я бы идеально хотел, чтобы мой апплет сканировал файл изображения и создавал изображение на экране в соответствии с изображением. Пожалуйста, попробуйте сделать ответы немного простыми, так как я все еще привык ко всем техническим терминам.Как получить цвет пикселя в апплете Java для создания карты?

Спасибо, ~ Ране

То, что я до сих пор:

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

Покажите нам, что вы пробовали, пожалуйста. –

+0

Я добавил то, что у меня есть. Это не так много, потому что я не был уверен, в каком направлении я должен возглавить это. – Rane

+2

1. Загрузите изображение. 2. Создайте [BufferedImage] (https://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html). 3. Нарисуйте изображение на нем. 4. Используйте BufferImage '.getRGB (x, y)' для получения значения пикселя –

ответ

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 не может быть разрешен». Я скопировал ваш метод выше. Я удалил только бит publicLoadLoader {'. (Как и закрытие} в конце) Знаете ли вы, почему? Спасибо за ваш ответ! – Rane

+0

Извините. Пожалуйста, отбросьте это. Мне удалось заставить Eclipse распознать ImageIO. Спасибо; вы исправили проблему! – Rane

+0

Без проблем, я рад помочь: D – PsychedelicPelican