public static byte[] addText(byte[] bImg, byte[] bVal, int offset) {
        try {
            //check of de tekst niet te groot is voor de foto
            if (bVal.length * 8 > bImg.length - offset) {
                throw new IllegalArgumentException("Message is too big for this image!");
            }

            //loop door alle bytes van de meegegeven waarde (val)
            for (int i = 0; i < bVal.length; i++) {
                
                if(i% 100 == 0 && i != 0)
                    ConsoleHelper.appendPercentCompleted(i, bVal.length);
                

                //loop door de 8 bits vat de i byte
                for (int bit = 7; bit >= 0; --bit, ++offset) { //increment offset na elke iteratie
                    //desbetreffende bit uit tekst byte ophalen
                    int b = (bVal[i] >>> bit) & 1;

                    //bit in de afbeelding veranderen
                    bImg[offset] = (byte) ((bImg[offset] & 0xFE) | b);

               }
                
                if (DEBUG) {
                    ConsoleHelper.append("\t" + "value byte " + i + ": " + Integer.toBinaryString(bVal[i]));
                }
            }
            
            ConsoleHelper.appendPercentCompleted(bVal.length, bVal.length);
            
        } catch (Exception ex) {
            throw ex;
        }

        return bImg;
    }