2017-03-15 143 views
-1

我们正在做关于图像压缩解压的项目,使用java.we已经使用base64编码器编码后的图像比应用下面的code.But这个java代码不适用于图像。它适用于char字符串,但不适用于图像。RLE使用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不working_是不是一个有效的问题。向我们展示你迄今为止尝试过的图像压缩。您不能期望与字符串一起工作的代码在不进行更改的情况下为图像工作。另见[问]。 – zett42

回答

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

给你的答案添加一些描述。 – Billa