2017-03-15 20 views
-1

java.weを使用した画像圧縮解除プロジェクトでは、base64エンコーダーを使用して画像を既にエンコードしています。このコードは、コードの下に適用した後ではありません。文字列は正しく動作しますが、イメージは正しく動作しません。あなたは文字列に画像を変換しているJavaを使用した画像のRLE圧縮解凍

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_ではありません。これまで画像圧縮のために試したことをお見せください。文字列で動作するコードは、変更せずに画像のために動作することは期待できません。また[ask]も参照してください。 – 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