Java tutorial
//package com.java2s; import android.graphics.Bitmap; import android.graphics.Color; import android.util.Log; public class Main { static final String LOG_TAG = "IccUtils"; /** * Convert a TS 131.102 image instance of code scheme '11' into Bitmap * @param data The raw data * @param length The length of image body * @return The bitmap */ public static Bitmap parseToBnW(byte[] data, int length) { int valueIndex = 0; int width = data[valueIndex++] & 0xFF; int height = data[valueIndex++] & 0xFF; int numOfPixels = width * height; int[] pixels = new int[numOfPixels]; int pixelIndex = 0; int bitIndex = 7; byte currentByte = 0x00; while (pixelIndex < numOfPixels) { // reassign data and index for every byte (8 bits). if (pixelIndex % 8 == 0) { currentByte = data[valueIndex++]; bitIndex = 7; } pixels[pixelIndex++] = bitToRGB((currentByte >> bitIndex--) & 0x01); } ; if (pixelIndex != numOfPixels) { Log.e(LOG_TAG, "parse end and size error"); } return Bitmap.createBitmap(pixels, width, height, Bitmap.Config.ARGB_8888); } private static int bitToRGB(int bit) { if (bit == 1) { return Color.WHITE; } else { return Color.BLACK; } } }