As I noticed when CIGaussianBlur is applied to image, image’s corners gets blurred so that it looks like being smaller than original. So I figured out that I need to crop it correctly to avoid having transparent edges of image. But how to calculate how much I need to crop in dependence of blur amount?
Example:
Original image:

Image with 50 inputRadius of CIGaussianBlur (blue color is background of everything):

Take the following code as an example…
This results in the images you provided above. But if I instead use the original images rect to create the CGImage off of the context the resulting image is the desired size.