From Usipedia
Jump to: navigation, search
The Laughing Droid says "You know what I'd like to be? I'd just be the Messiah of the world (which is filled with the galapagos syndrome)"



PrivacyCamera is a privacy protecting camera which can hide human faces with an image or blindfold, and pixelate them automatically.



The Blindfold Droid


  • Android 1.6 or higher

Validation devices

If you use a device which has under 100MB RAM, this app will not work.

Sony Ericsson Xperia X10 complete
Sony Ericsson Xperia X10 mini do.
Samsung Galaxy S do.
LG Electronics Optimus GT540 do.
Sharp IS01 do.
Toshiba(FUJITSU) REGZA Phone T-01C do.
Google(HTC) Nexus One Sometimes this app causes a fatal error. Don't use.
HTC Desire HD do.
Sony Ericsson Xperia arc do.
HTC Magic HT-03A This app will cause some Exceptions due to low memory.

Supported languages

  • Japanese / English / Chinese(simplified)

How to use


Select an action from option menu.

  • Do nothing
  • Overlay image
  • Blindfold
  • Pixelation

Touch "Autofocus" button to focus. The button which is located in top-right is the "Silent take" button, and the other is the "Take with sound" button.

Touch "Silent take" button to take a low quality picture(which size is same as your device's display), and touch "Take with sound" to take a high quality picture(which size is from 1024x778 to 1920x768). But it takes relatively longer time.


If you take a picture, this processing dialog will appear. Wait until all processing finishes.


When the process finished, this dialog will appear. Select your choice. (User-unfriendly? I hope you will not use this camera for impolite reasons.)

Configure this application


This is the configure screen. Touch "Change the overlay image" to show next screen.


You can add an image from option menu.


Long-touch each item to remove the item.

Sample images

Programming tips

How to detect faces

I used the FaceDetector class. But I think it's relatively slow so you should use OpenCV.

For example:Detection using OpenCV library on Sony Xperia(Android 1.6)

How to deal with OutOfMemoryError caused by Bitmap

  1. You should set both inPurgeable and inInputShareable (BitmpaFactory.Options) to true.
  2. Once you finish using a Bitmap instance, you should recycle() it to allow it to be garbage collected.

BitmapFactory.Options inPurgeable

If this is set to true, then the resulting bitmap will allocate its pixels such that they can be purged if the system needs to reclaim memory. In that instance, when the pixels need to be accessed again (e.g. the bitmap is drawn, getPixels() is called), they will be automatically re-decoded.

BitmapFactory.Options inInputShareable

This field works in conju(n)ction with inPurgeable. If inPurgeable is false, then this field is ignored. If inPurgeable is true, then this field determines whether the bitmap can share a reference to the input data (inputstream, array, etc.) or if it must make a deep copy.

How to reduce the Bitmap processing cost

getPixel and setPixel is slow so you should use getPixels and setPixels.


  • Developer Collaboration Project lent me many Android devices
  • This article was corrected by Char Custom (Chiesuke), who lives in the USA.
  • The Catcher in the Rye
  • Ghost in the Shell: Stand Alone Complex
  • ぼっさん(He is a super "idol" in 2ch (Japanese anonymous community). And he allows anyone to use his portrait freely)