At the risk of creating a "me, too" answer; Base64 encoding would be the only reasonable way to do this, but it is almost certainly (as in definitely) not the way you really want to do this. Maybe if you provided a little more context, it would be easier to help with a solution. I suppose if we're talking about just tiny little images like icons it might work, but it still isn't the solution you want. The query string is not meant to pass objects around directly. It is meant to make a request for a resource. You could save your images to files on disk and reference the files directly in your URL, as others have suggested. If your images are in a database, you could put the image's id in the url, and create a page that sets the appropriate MIME type for your image, and streams out the bits to the caller. If you did that, you might end up with a url that looks like http://servername/image.aspx?id=123
which would, to the caller, be exactly the same thing functionally as http://servername/image.jpg
. In fact, if you did that, then you could also choose to employ additional query string parameters to specify things like the output size for the image, or even the type of the image (in which case your aspx page would resize the image or convert it between formats).