When I display the rotated image using the PIL show() function (immediately after the rotation is applied) it looks OK. However, when I convert the image to a string and display it elsewhere, it appears diagonally warped, although the colors are OK. If I do not rotate the image, then it looks OK after the "tostring" conversion. So, it seems that the "transpose(ROTATE_90)" function is doing something to the image that is not evident until it is converted to a string... I'm completely baffled.
FYI - I've checked the mode of the image after opening it and it is "RGB"