APL (Dyalog Unicode), 74 49 45 bytesSBCS
{⍵@(⌈x÷2)∘⍉∘(⌽⍵@(2/¨⍳x))⍣2⊢''⍴⍨2⍴x←≢⍵}(⊢,1↓⌽)
-11 thanks to ovs
Explanation:
{⍵@(⌈x÷2)∘⍉∘(⌽⍵@(2/¨⍳x))⍣2⊢''⍴⍨2⍴x←≢⍵}(⊢,1↓⌽)
(⊢,1↓⌽) ⍝ turn "abc" into "abcba"
{ x←≢⍵} ⍝ x is the length of that string (passed as an argument)
''⍴⍨2⍴ ⍝ Generate a blank string of x times x
⍣2⊢ ⍝ Do twice:
⍵@(⌈x÷2)∘⍉∘(⌽⍵@(2/¨⍳x)) ⍝ Update our blank string with our argument (the mirrored string):
⍵@(2/¨⍳x) ⍝ Add our element horizontally, replace with our (mirrored) argument
(⌽ ) ⍝ Rotate vertically
⍉∘ ⍝ Transpose (double rotate, vertical and horizontal)
⍵@(⌈x÷2)∘ ⍝ Add our argument vertically to the string
Since we're doing these transposes twice, we'll have rotated our image on all four quadrants.