void DoDifference(Drawable sourceDrawable, Drawable toDiffDrawable) { _indexedColorsMap = new IndexedColorsMap(); var rectangle = sourceDrawable.MaskBounds; var srcPR = new PixelRgn(sourceDrawable, rectangle, true, true); var destPR = new PixelRgn(toDiffDrawable, rectangle, false, false); var iterator = new RegionIterator(srcPR, destPR); iterator.ForEach((src, dest) => src.Set(MakeAbsDiff(dest, src))); sourceDrawable.Flush(); sourceDrawable.MergeShadow(false); sourceDrawable.Update(rectangle); }