title: Take monochrome picture (black and white) with Android
body: <p>I would like to take a picture in true black and white in my app. I searched for solutions (in this site too), but I always found solution to put a photo in gray scale (for example in <a href="https://stackoverflow.com/questions/9377786/android-converting-a-bitmap-to-a-monochrome-bitmap-1-bit-per-pixel">this topic</a>), but it's not what I am looking for ...</p>
  
  <p>I also found a topic proposing this : </p>
  
  <pre><code>public static Bitmap createContrast(Bitmap src, double value) {
  // image size
  
                  int width = src.getWidth();
                  int height = src.getHeight();
                  // create output bitmap
                  Bitmap bmOut = Bitmap.createBitmap(width, height, src.getConfig());
                  // color information
                  int A, R, G, B;
                  int pixel;
                  // get contrast value
                  double contrast = Math.pow((100 + value) / 100, 2);
  
          // scan through all pixels
          for (int x = 0; x &lt; width; ++x) {
              for (int y = 0; y &lt; height; ++y) {
                  // get pixel color
                  pixel = src.getPixel(x, y);
                  A = Color.alpha(pixel);
                  // apply filter contrast for every channel R, G, B
                  R = Color.red(pixel);
                  R = (int) (((((R / 255.0) - 0.5) * contrast) + 0.5) * 255.0);
                  if (R &lt; 0) {
                      R = 0;
                  } else if (R &gt; 255) {
                      R = 255;
                  }
  
                  G = Color.red(pixel);
                  G = (int) (((((G / 255.0) - 0.5) * contrast) + 0.5) * 255.0);
                  if (G &lt; 0) {
                      G = 0;
                  } else if (G &gt; 255) {
                      G = 255;
                  }
  
                  B = Color.red(pixel);
                  B = (int) (((((B / 255.0) - 0.5) * contrast) + 0.5) * 255.0);
                  if (B &lt; 0) {
                      B = 0;
                  } else if (B &gt; 255) {
                      B = 255;
                  }
  
                  // set new pixel color to output bitmap
                  bmOut.setPixel(x, y, Color.argb(A, R, G, B));
              }
          }
  
          return bmOut;
  
      }
  </code></pre>
  
  <p>But the image quality is horrible ...</p>
  
  <p>Is anyone having an idea please?</p>
  
  <p>Thank you</p>