Probably the best approach to the problem would be to implement an algorithm which allows to generate pixel positions in the original image along the Line without using the FrontEnd
I think ImageTransformation
doest just that. Using your definitions:
r = Min[id]/2;
dir = N@AngleVector[α];
(*modify step distance so we step at least 1 pixel in x or y \
direction*)
dir = dir/Max[Abs[dir]];
profile =
First@ImageData@
ImageTransformation[img,
center + #[[1]] dir + {1, 0} &, {Round[r], 1}, DataRange -> Full,
PlotRange -> {{0, r - 1}, {0, 1}}, Resampling -> "Nearest"];
ListLinePlot[{profile, radialProfile}, PlotRange -> All]