SHARE
TWEET

Colors are beautiful Java Tuenti Contest

javipinero Jun 21st, 2011 717 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package colors;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.FileInputStream;
  5. import java.io.InputStreamReader;
  6.  
  7. import javax.imageio.stream.*;
  8. import javax.imageio.ImageIO;
  9. import java.util.*;
  10. import javax.imageio.ImageReader;
  11. import java.awt.image.BufferedImage;
  12.  
  13. public class Colors {
  14.  
  15.         BufferedImage bi; // imagen
  16.  
  17.         public BufferedImage cargarImagen(String imagen) {
  18.  
  19.                 try {
  20.                         FileInputStream inputStream = new FileInputStream(imagen);
  21.                         Iterator readers = ImageIO.getImageReadersBySuffix("bmp");
  22.                         ImageReader reader = (ImageReader) readers.next();
  23.                         ImageInputStream imageInputStream = ImageIO
  24.                                         .createImageInputStream(inputStream);
  25.                         reader.setInput(imageInputStream, false);
  26.                         return reader.read(0);
  27.                 } catch (Exception e) {
  28.                         e.printStackTrace();
  29.                 }
  30.                 return null;
  31.         }
  32.        
  33.         public int obtenerComponentePixel(int line, int column, int offset) {
  34.                 return (bi.getRGB(column, line) >> offset)&255;
  35.         }
  36.        
  37.         public int obtenerOffset(String componente) {
  38.                 if (componente.equals("R")) {
  39.                         return 16;
  40.                 } else if (componente.equals("G")) {
  41.                         return 8;
  42.                 }
  43.                 return 0;
  44.         }
  45.        
  46.         public int obtenerSumaLinea(int linea, String componente) {
  47.                
  48.                 if (linea < 0 || linea >= bi.getHeight()) {
  49.                         return -1;
  50.                 }
  51.                
  52.                 int offset = obtenerOffset(componente);
  53.                 int resultado = 0;
  54.                
  55.                 for (int i=0; i<bi.getWidth(); i++) {
  56.                         resultado += obtenerComponentePixel(linea, i, offset);
  57.                 }
  58.                
  59.                 return resultado;
  60.         }
  61.        
  62.         public Colors(String ficheroImagen) {
  63.                 bi = cargarImagen(ficheroImagen);
  64.         }
  65.  
  66.         public static void main(String[] args) {
  67.  
  68.                 Colors colors = new Colors("trabaja.bmp");
  69.                 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  70.                
  71.                 try {
  72.                        
  73.                         while (br.ready()) {
  74.                        
  75.                                 String datos = br.readLine().trim();
  76.                                 if (!datos.isEmpty()) {
  77.                                         String componente = datos.substring(0, 1);
  78.                                         int linea = Integer.parseInt(datos.substring(1));
  79.                                         System.out.println(colors.obtenerSumaLinea(linea, componente)+1);
  80.                                 }
  81.                                
  82.                         }
  83.                        
  84.                 } catch (Exception e) {
  85.                         e.printStackTrace();
  86.                 }
  87.         }
  88.  
  89. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top