Don’t worry, VTK is quite simple to use, you just happen to come across vtkImageReslice, which I find the one of the most powerful but hardest-to-use class in VTK. It can apply inverse non-linear transforms on the fly for extracting a slice at arbitrary location and resolution, using different interpolators, accepting an input stencil and generating output stencil for images arbitrary type and number of scalar components, etc. and doing all these very efficiently, all in a single class. As you would expect, this makes it complicated.
It also has somewhat redundant API (you can achieve the same thing with different combinations of ResliceAxes and ResliceTransform and SetOutputX), which is good for flexibility but requires you to learn a lot about the class before you can use it effectively.
An additional unnecessary complexity is that you cannot set output geometry by specifying a reference image, because support of arbitrary image directions have been just recently added to vtkImageData. If you spend some time with understanding this class anyway, it would be very nice if you could add this convenience feature (then you could just specify an output image and the class would give you the content of the input image there).
vtkImageReslice can do something like this, too, by setting reslice axes origin and directions, and output spacing.
Alternatively, you can specify a reslice transform that contains relative transform between the physical image coordinate system of the input image and the output slice. We use this in 3D Slicer, where the input volume can be under a series of arbitrary transforms.
If you are not sure what’s happening under the hood then you can have a look at the source code.