Facebook
From José Galea, 4 Years ago, written in Java.
Embed
Download Paste or View Raw
Hits: 160
  1. package AA_personalizando_entregable;
  2.  
  3. /**
  4.  *
  5.  * @author ASUS54
  6.  */
  7. public class Imagen {
  8.  
  9.     private String cabecera;
  10.     private String comentario;
  11.     private int altura;
  12.     private int anchura;
  13.     private int blancoMax;
  14.     private int[][] pixel;
  15.  
  16.     public String getCabecera() {
  17.         return cabecera;
  18.     }
  19.  
  20.     public void setCabecera(String cabecera) {
  21.         this.cabecera = cabecera;
  22.     }
  23.  
  24.     public String getComentario() {
  25.         return comentario;
  26.     }
  27.  
  28.     public void setComentario(String comentario) {
  29.         this.comentario = comentario;
  30.     }
  31.  
  32.     public int getAltura() {
  33.         return altura;
  34.     }
  35.  
  36.     public void setAltura(int altura) {
  37.         this.altura = altura;
  38.     }
  39.  
  40.     public int getAnchura() {
  41.         return anchura;
  42.     }
  43.  
  44.     public void setAnchura(int anchura) {
  45.         this.anchura = anchura;
  46.     }
  47.  
  48.     public int getBlancoMax() {
  49.         return blancoMax;
  50.     }
  51.  
  52.     public void setBlancoMax(int blancoMax) {
  53.         this.blancoMax = blancoMax;
  54.     }
  55.  
  56.     public int[][] getPixel() {
  57.         return pixel;
  58.     }
  59.  
  60.     public void setPixel(int[][] pixel) {
  61.         this.pixel = pixel;
  62.     }
  63.  
  64.     public void filtroCaja() {
  65.         for (int i = 0; i < anchura; ++i) {
  66.             for (int j = 0; j < altura; ++j) {
  67.                 pixel[i][j] = (int) Math.round(pixel[i][j] / (double) blancoMax * 255.0);
  68.             }
  69.         }
  70.         int[][] newPixeles = new int[anchura][altura];
  71.         for (int i = 0; i < anchura; ++i) {
  72.             for (int j = 0; j < altura; ++j) {
  73.                 if (i == 0 && j == 0) {
  74.                     newPixeles[i][j] = (pixel[0][0] + pixel[0][1] + pixel[1][0] + pixel[1][1]) / 4;
  75.                 } else if (i == 0 && j == altura - 1) {
  76.                     newPixeles[i][j] = (pixel[0][altura - 1] + pixel[0][altura - 2] + pixel[1][altura - 2] + pixel[1][altura - 1]) / 4;
  77.                 } else if (i == anchura - 1 && j == 0) {
  78.                     newPixeles[i][j] = (pixel[anchura - 1][0] + pixel[anchura - 1][1] + pixel[anchura - 2][0] + pixel[anchura - 2][1]) / 4;
  79.                 } else if (i == anchura - 1 && j == altura - 1) {
  80.                     newPixeles[i][j] = (pixel[anchura - 1][altura - 1] + pixel[anchura - 1][altura - 2] + pixel[anchura - 2][altura - 1] + pixel[anchura - 2][altura - 2]) / 4;
  81.                 } else if (i == 0) {
  82.                     newPixeles[i][j] = (pixel[i][j - 1] + pixel[i][j] + pixel[i][j + 1] + pixel[i + 1][j - 1] + pixel[i + 1][j] + pixel[i + 1][j + 1]) / 6;
  83.                 } else if (i == anchura - 1) {
  84.                     newPixeles[i][j] = (pixel[i][j - 1] + pixel[i][j] + pixel[i][j + 1] + pixel[i - 1][j - 1] + pixel[i - 1][j] + pixel[i - 1][j + 1]) / 6;
  85.                 } else if (j == 0) {
  86.                     newPixeles[i][j] = (pixel[i - 1][j] + pixel[i][j] + pixel[i + 1][j] + pixel[i - 1][j + 1] + pixel[i][j + 1] + pixel[i + 1][j + 1]) / 6;
  87.                 } else if (j == altura - 1) {
  88.                     newPixeles[i][j] = (pixel[i - 1][j] + pixel[i][j] + pixel[i + 1][j] + pixel[i - 1][j - 1] + pixel[i][j - 1] + pixel[i + 1][j - 1]) / 6;
  89.                 } else {
  90.                     newPixeles[i][j] = (pixel[i + 1][j - 1] + pixel[i + 1][j] + pixel[i + 1][j + 1] + pixel[i][j - 1] + pixel[i][j] + pixel[i][j + 1] + pixel[i - 1][j - 1] + pixel[i - 1][j] + pixel[i - 1][j + 1]) / 9;
  91.                 }
  92.             }
  93.         }
  94.         pixel = newPixeles;
  95.         blancoMax = 255;
  96.     }
  97.  
  98. }
  99.