I agree with everything Jonathan said, and I will add that all the usual image routes are trickier with DICOM, in part due to the encapsulation Jonathan mentioned, but also because images are often 12 bit and lossless, neither of which (in the past at least) were handled well by any standard image libraries, or jpeg viewers for that matter. Actually the lossless jpeg is not really even jpeg compressed in the usual way, it is a "predictor"-based compression, i.e. each pixel just stores the difference from the previous one.
If you read through issue 16, you'll see that I did once get 8-bit lossy to work with PIL, but that was years ago and I'm sure I would not find the code now. Actually, I just remembered -- part of it does exist -- it is in the encaps.py file in the pydicom source. It handles turning the fragments into a single string of bytes. So we do have that piece. I think I was then able to pass that to PIL (but just for an 8-bit lossy jpeg image as I mentioned; I didn't get 12-bit to work).
Luca, if you do play around with that and get something working, please let us know. My latest thoughts for anything other than 8-bit lossy were to try to model the code in dcmtk, which (IIRC) uses an extended version of the IJG code.
-Darcy