one could event prefer adding a positive integer to subtracting a negative one:
if (src_stride < 0) src += (-src_stride) * (lines - 1);
which I find more readable to show to intent to walk the image starting from last line in memory order
Yes, that's definitely better.