This page shows how it's possible to take an arbitrarily shaped image and rag text around it. The image on the left is one piece, with the transparency set to match the background image of the page. An ajax call to a Perl script opens the image, reads the transparency setting, then finds the pixels that match. The returned array is used to create a series of divs running up the side of the page, each set to the width of the image at that point. The divs use the original image as the "background-image", offset such that it all lines up. See the explanation here.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus vel dolor. Maecenas quis turpis. Vestibulum a turpis ut sapien semper lacinia. Vestibulum purus. Maecenas accumsan eros non arcu. In massa tellus, tincidunt non, mattis vel, volutpat eu, augue. Mauris vitae leo. Donec tortor velit, tincidunt quis, lobortis ac, porttitor rutrum, elit. Donec eget risus eget odio varius interdum. Phasellus non enim at lectus egestas ultrices. Mauris eget purus. Aliquam mauris. Nulla ipsum libero, venenatis eget, feugiat sed, iaculis vitae, nibh. Fusce auctor aliquam eros.
Aenean eleifend odio ut neque. In dictum magna elementum neque. Sed ligula. Proin a sapien ac nulla porttitor sodales. Curabitur at orci. Proin id dolor. Pellentesque est. Nunc interdum, erat nec fermentum interdum, nibh ante adipiscing ligula, quis ullamcorper lacus mi a est. Suspendisse potenti. In nunc tellus, feugiat non, rhoncus eget, dignissim at, lectus. Proin pulvinar nibh nec quam faucibus varius. Nunc posuere nunc quis ante. Ut venenatis orci vel neque. Nullam nec odio id mi bibendum pharetra.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus vel dolor. Maecenas quis turpis. Vestibulum a turpis ut sapien semper lacinia. Vestibulum purus. Maecenas accumsan eros non arcu. In massa tellus, tincidunt non, mattis vel, volutpat eu, augue. Mauris vitae leo. Donec tortor velit, tincidunt quis, lobortis ac, porttitor rutrum, elit. Donec eget risus eget odio varius interdum. Phasellus non enim at lectus egestas ultrices. Mauris eget purus. Aliquam mauris. Nulla ipsum libero, venenatis eget, feugiat sed, iaculis vitae, nibh. Fusce auctor aliquam eros.
Aenean eleifend odio ut neque. In dictum magna elementum neque. Sed ligula. Proin a sapien ac nulla porttitor sodales. Curabitur at orci. Proin id dolor. Pellentesque est. Nunc interdum, erat nec fermentum interdum, nibh ante adipiscing ligula, quis ullamcorper lacus mi a est. Suspendisse potenti. In nunc tellus, feugiat non, rhoncus eget, dignissim at, lectus. Proin pulvinar nibh nec quam faucibus varius. Nunc posuere nunc quis ante. Ut venenatis orci vel neque. Nullam nec odio id mi bibendum pharetra.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus vel dolor. Maecenas quis turpis. Vestibulum a turpis ut sapien semper lacinia. Vestibulum purus. Maecenas accumsan eros non arcu. In massa tellus, tincidunt non, mattis vel, volutpat eu, augue. Mauris vitae leo. Donec tortor velit, tincidunt quis, lobortis ac, porttitor rutrum, elit. Donec eget risus eget odio varius interdum. Phasellus non enim at lectus egestas ultrices. Mauris eget purus. Aliquam mauris. Nulla ipsum libero, venenatis eget, feugiat sed, iaculis vitae, nibh. Fusce auctor aliquam eros.
Aenean eleifend odio ut neque. In dictum magna elementum neque. Sed ligula. Proin a sapien ac nulla porttitor sodales. Curabitur at orci. Proin id dolor. Pellentesque est. Nunc interdum, erat nec fermentum interdum, nibh ante adipiscing ligula, quis ullamcorper lacus mi a est. Suspendisse potenti. In nunc tellus, feugiat non, rhoncus eget, dignissim at, lectus. Proin pulvinar nibh nec quam faucibus varius. Nunc posuere nunc quis ante. Ut venenatis orci vel neque. Nullam nec odio id mi bibendum pharetra.