2016-08-31 3 views
0

В моем проекте получить каждое пиксельное значение изображения, затем выполнить дешифрование на пикселе и установить новое значение для пикселя. Но после создания нового изображения с измененными значениями пикселей новое изображение не может содержать одинаковые значения пикселей, которые я меняю, как есть. Значения основных пикселей изменяются. Как решить эту проблему. Мой кодНастройка пикселей изменяется после рисования изображения

 for(i=0;i<width;i++){ 
     for(int j=0;j<height;j++){ 

      //int p1 = pix[i][j]; 
      int a1 = ealph[i][j];   
      int r3 = ered[i][j]; 
      int g1 = ered[i][j]; 
      int b1 = ered[i][j]; 


      int p1 = (a1<<24) | (r3<<16) | (g1<<8) | b1; 
       img.setRGB(i, j, p1); 

     } 

    } 

    try{ 
     f = new File("C:\\Users\\chukkapalli\\workspace\\Des_Encryption\\decripted_img.jpg"); 
     ImageIO.write(img, "jpg", f); 
     }catch(IOException e){ 
     System.out.println(e); 
     } 


    f = null; 

img = null; 
    try{ 
      f = new File("C:\\Users\\chukkapalli\\workspace\\Des_Encryption\\decripted_img.jpg"); 
      img = ImageIO.read(f); 
     }catch(IOException e){ 
      System.out.println(e); 
     } 
    width = img.getWidth(); 
    height = img.getHeight(); 

    for(i=0;i<width;i++){ 
      for(int j=0;j<height;j++){ 

       int p1 = img.getRGB(i,j); 
       e1alph[i][j] = (p1>>24)&0xff; 
       e1red[i][j] = (p1>>16)&0xff; 
       egreen[i][j] = (p1>>8)&0xff; 
       eblue[i][j] = p1&0xff; 

       System.out.println("orginal image- "+ealph[i][j]+" "+ered[i][j]+" "+ered[i][j]+" "+ered[i][j]+" created -- "+e1alph[i][j]+" "+e1red[i][j]+" "+egreen[i][j]+" "+eblue[i][j]); 

      } 

     } 

Выход

 orginal image- 0 33 33 33 created -- 255 35 35 35 
    orginal image- 0 38 38 38 created -- 255 41 41 41 
    orginal image- 0 140 140 140 created -- 255 142 142 142 
    orginal image- 0 81 81 81 created -- 255 51 51 51 
    orginal image- 0 22 22 22 created -- 255 21 21 21 
    orginal image- 0 127 127 127 created -- 255 135 135 135 
    orginal image- 0 126 126 126 created -- 255 127 127 127 
    orginal image- 0 63 63 63 created -- 255 62 62 62 
    orginal image- 0 244 244 244 created -- 255 250 250 250 
    orginal image- 0 11 11 11 created -- 255 0 0 0 
    orginal image- 0 13 13 13 created -- 255 11 11 11 
    orginal image- 0 171 171 171 created -- 255 175 175 175 
    orginal image- 0 126 126 126 created -- 255 130 130 130 
    orginal image- 0 8 8 8 created -- 255 0 0 0 
    orginal image- 0 6 6 6 created -- 255 14 14 14 
    orginal image- 0 248 248 248 created -- 255 244 244 244 
    orginal image- 0 109 109 109 created -- 255 128 128 128 
    orginal image- 0 107 107 107 created -- 255 86 86 86 
    orginal image- 0 50 50 50 created -- 255 48 48 48 
    orginal image- 0 104 104 104 created -- 255 131 131 131 
    orginal image- 0 110 110 110 created -- 255 95 95 95 
    orginal image- 0 127 127 127 created -- 255 128 128 128 

Как я могу создать изображение с вне изменения значения пикселя после создания. Спасибо.

ответ

1

Попробуйте использовать формат без потерь, например PNG. JPG изменяет значения пикселей в своем сжатии и не может быть прочитан точно так, как он был создан.

+0

Большое спасибо. Он отлично работает. –

Смежные вопросы