Criptografar apenas o conteúdo de um arquivo de imagem e não o arquivo inteiro

Estou criando um aplicativo e preciso descrever apenas o conteúdo de uma imagem. Preciso que o arquivo ainda seja uma imagem após a conversão, mas a imagem mostrada não aparece como o original.

Por exemplo, enviarei a imagem criptografada para outro usuário e esta poderá mostrar e criar uma imagem (mas não a original), mas a imagem original foi criptografada nesse arquivo.

Com o seguinte algoritmo, criptografei o arquivo inteiro, e isso não pode ser aberto como imagem porque o cabeçalho também é criptografado.

Estou usando esse algoritmo, mas não sei como criptografar apenas dados ou como adicionar / modificar os cabeçalhos de uma imagem em java / android:

public byte[] encrypt_image(Bitmap bm, String password_) {

    byte[] encryptedData = null;

    try{
        ByteArrayOutputStream baos = new ByteArrayOutputStream();  
        bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
        byte[] b = baos.toByteArray();  

        byte[] keyStart = password_.getBytes();
        KeyGenerator kgen = KeyGenerator.getInstance("AES");
        SecureRandom sr = SecureRandom.getInstance("SHA1PRNG", "Crypto");
        sr.setSeed(keyStart);
        kgen.init(128, sr); 
        SecretKey skey = kgen.generateKey();
        byte[] key = skey.getEncoded();    

        // Encrypt
        encryptedData = Security.encrypt(key,b);


    }catch (Exception e) {
        Log.e("encrpyt_image()", e.getMessage());
    }
    return encryptedData;
}

Alguém tem uma idéia de como codificar isso, eu tenho pesquisado na internet sem sucesso.

questionAnswers(1)

yourAnswerToTheQuestion