Hi,

I'm writing an image editing application, making use of the Bitmap and
Canvas classes, and I need to edit the colors of pixels in specific
ways for some operations. For example, I'd like to be able to XOR
pixel values and create a multiply filter that works the same way as
in desktop image software.

With the current Porter Duff modes available (http://
developer.android.com/reference/android/graphics/PorterDuff.Mode.html)
that you set with Paint.setXfermode(..) I can't do either of these as
the XOR mode and multiply mode available don't treat alpha values the
way that I want. For example, the XOR operation should just XOR all
the bits together and not perform any calculations based on the alpha
value (Canvas does the latter when XOR is set).

My solution at the moment is to dump the two bitmaps I'm working with
to int arrays, perform the operation by hand using the int arrays (NDK
use would speed this up) and the copy the int arrays back. This is
slow and cumbersome and also means I can't e.g. use operations like
Canvas.drawBitmap with the filters I want.

Is it possible to introduce my own Porter Duff modes (e.g. using the
NDK)? This would be a much more elegant solution for me.

I'd appreciate any advice on alternative solutions too. As far as I'm
aware, it isn't possible to modify the contents of Bitmap objects
directly without copying to int arrays first.

Thanks.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to