APL(Dyalog Unicode), 110 bytes SBCS
{⊃,/⍪⌿⍺∘{(' ',⍵)[1+⍺ ⍺⍴⍺{⍵='\':∘.=⍨⍳⍺⋄⍵='/':⌽∘.=⍨⍳⍺⋄'|'=⍵:(⌈⍺÷2)=⍳⍺⋄'_'=⍵:⌽⍺/⍺↑1⋄'-'=⍵:⍉⍺ ⍺⍴(⌈⍺÷2)=⍳⍺⋄0}⍵]}¨⍵}
A dfn submission which takes a character matrix on the right and the scale on the left.
Just runs a huge conditional for each character in the matrix. A possible way to improve this would be to figure out a formula to generate the binary arrays required for each character.