But I was wondering if there is a simple or faster solution.
Not really. In the scope of wand, this would be one of the fastest methods. For simplicity, your already doing everything on one line of code. Perhaps you can reduce this with Image.composite.
destinationImage.composite(sourceImage, leftPosition, topPosition)
But your now compromising the readability of your current solution. Having the full command with channel='all_channels'
& operator='replace'
kwargs will help you in the long run. Think about revisiting the code in a year.
destinationImage.composite(sourceImage, leftPosition, topPosition)
# versus
destinationImage.composite_channel(channel='all_channels',
image=sourceImage,
operator='replace',
left=leftPosition,
top=topPosition)
Right away, without hitting the API docs, you know the second option is replacing destination with a source image across all channels. Those facts are hidden, or assumed, in the first variation.