2017-03-15 2 views
-1

nous faisons projet sur la décompression de compression d'image en utilisant java.we avons déjà codé l'image en utilisant l'encodeur base64 après qu'appliqué ci-dessous code.Mais ce code java ne fonctionne pas pour l'image. cela fonctionne correctement pour la chaîne de caractère, mais pas pour l'image.décompression de compression RLE pour l'image en utilisant java

StringBuffer dest = new StringBuffer(); 
for (int i = 0; i < source.length(); i++) 
{  
    int runLength = 1;  
    while (i + 1 < source.length() && source.charAt(i) == source.charAt(i + 1)) 
    { 
     runLength++; 
     i++; 
    } 
    dest.append(runLength);  
    dest.append(source.charAt(i)); 
} 
return dest.toString(); 
+0

code_ ne working_ est pas une question valable. Montrez-nous ce que vous avez essayé jusqu'ici pour la compression d'image. Vous ne pouvez pas attendre du code qui fonctionne avec une chaîne de travailler pour l'image sans apporter de modifications. Voir aussi [demander]. – zett42

Répondre

0
public byte[] byteArray(BufferedImage image){ 
    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    byte[] imageInByte = null; 
    try{ 
     ImageIO.write(image, "BMP", baos); 
     baos.flush(); 
     imageInByte = baos.toByteArray(); 
     baos.close(); 
    }catch(IOException e){ 
     System.out.println(e.getMessage()); 
    } 

    return imageInByte; 
} 
public String getRunLength(){ 
    StringBuffer dest = new StringBuffer();   
    for(int i =0; i < imageByteArray.length; i++){ 
     int runlength = 1; 
     while(i+1 < imageByteArray.length && imageByteArray[i] == imageByteArray[i+1]){ 
      runlength++; 
      i++; 

     }  


     dest.append(runlength); 

     dest.append(imageByteArray[i]); 

    } 
    return dest.toString(); 
} 
+1

Ajoutez une description à votre réponse. – Billa