Splitting an image to puzzle pieces

I’m trying to develop a game like zigsaw puzzle. what I need is trying to give the player to select any image from the gallery and put it as a puzzle.
e.g if I have a picture of 500X500 size in the gallary and if I put it as the puzzle picture.
Then I need that picture to crop or split whatever the right word is to particular 9 custom shapes.
Is it possible by programming or is there any resource available which will help me in finding the solution of this problem.

As seen below this will be flat image before and i want to convert that flat image into the custom pieces of the given grid.
the shape is not rectangle nor square. if cell is custom so Please let me know how can i achieve this.
thanks

You are possibly looking for Masking feature of UI component. You can interact with Show mask graphic check box to show/hide the mask or enable/disable mask script as well. For masking you need 9 custom shape image and use image for each.

Recommended video

EDIT:

Goto Hierarchy window and follow these steps:

  1. Right click → UI → Panel
  2. Inside Panel - right click → UI → Image (say Mask)
  3. Inside Panel - right click → UI → Image (say BG)
  4. Add Mask component on Mask GameObject
  5. Set Image Source of BG gameobject.
  6. Set Image Source of Mask GameObject
  7. Set Mask gameobject over any part of BG gameobject
  8. Make BG child of Mask.

You have to split the image into the parts you want with a photo editor program, and have several images that fit. Create a UI button for each image and drag the image to the button. Make a script to make them fit when they are the correct combination.