'**SUMMARY**
Render all of the layers onto the current image and return the result.
Indicies can be a list of integers specifying the layers to be used.
**PARAMETERS**
* *indicies* -  Indicies can be a list of integers specifying the layers to be used.
**RETURNS**
The image after applying the drawing layers.
**EXAMPLE**
>>> img = Image("Lenna")
>>> myLayer1 = DrawingLayer((img.width,img.height))
>>> myLayer2 = DrawingLayer((img.width,img.height))
>>> #Draw some stuff
>>> img.insertDrawingLayer(myLayer1,1) # on top
>>> img.insertDrawingLayer(myLayer2,2) # on the bottom
>>> derp = img.applyLayers()
**SEE ALSO**
:py:class:`DrawingLayer`
:py:meth:`dl`
:py:meth:`toPygameSurface`
:py:meth:`getDrawingLayer`
:py:meth:`removeDrawingLayer`
:py:meth:`layers`
:py:meth:`drawText`
:py:meth:`drawRectangle`
:py:meth:`drawCircle`
:py:meth:`blit`'

def applyLayers(self, indicies=(-1)):

    if (not len(self._mLayers)):
        return self
    if ((indicies == (-1)) and (len(self._mLayers) > 0)):
        final = self.mergedLayers()
        imgSurf = self.getPGSurface().copy()
        imgSurf.blit(final._mSurface, (0, 0))
        return Image(imgSurf)
    else:
        final = DrawingLayer((self.width, self.height))
        retVal = self
        indicies.reverse()
        for idx in indicies:
            retVal = self._mLayers[idx].renderToOtherLayer(final)
        imgSurf = self.getPGSurface().copy()
        imgSurf.blit(final._mSurface, (0, 0))
        indicies.reverse()
        return Image(imgSurf)
