Scale 9 images already exist on roblox in the form of “styles”, like button and frame styles, which are essentially images that can scale without losing proportions. They allow the image to be stretched to almost any resolution, meaning the image will look as intended at any resolution.
So why is this useful? Scale 9 frames are a solution to a problem in interactive graphic design that appears when you want your images to dynamically change their resolution, but beyond that they also have the affect of allowing you to only upload a single image for all of your scaling images, decreasing the file size for your game.
I imagine the implementation being similar to ImageLabels.
Scale9Image
.Image = Content source -- The file location of the source image. This is a sheet that would be cut into 9 pieces to assemble the final image. The sizes of the cuts are determined by BorderSize.
.BorderSize = Int pixels -- This is the length of the border. Corners are squares of this size, left/right borders are this wide, and top/bottom borders are this tall.
.ImageTransparency = Number scalar -- Same as ImageLabel.ImageTransparency
.ImageColor3 = Color3 colorShift -- Same as ImageLabel.ImageColor3
.CanvasSize = UDim2 size -- This is the size of the content canvas relative to the absolutesize of the scale9image. It would be used to constrain the contents within the borders of the frame and it would be centered in the middle of the frame.