CommunityCommons has a Java action that can copy images, called DuplicateImageDocument.
You retrieve the object (A) containing the image you want to copy and create a new (empty) image object (b) as well. Then feed both to this Java action, A is the ‘file to clone’ and B is the ‘Clone target’
I had an issue with this once. I kept gettin some kind of vague “null” error. I realized I had to put an actual value in the thumbnail width/height attributes instead of leaving them blank and it fixed the issue for me