Duas opções:
Crie um arquivo temporário - O problema com essa abordagem é que você precisa criar o arquivo, o que significa que sua web deve ter acesso de gravação a um diretório que não é uma grande coisa. Você também precisa ter uma maneira de limpar as imagens.
Servir a partir de outro URL - Este é o meu método preferido, pois você não precisa de acesso ao disco. Um manipulador http simples (ashx) é um ótimo método para servir a imagem.
Editar
Se você precisar de estado de sessão no ashx, confira:Asp.net System.Web.HttpContext.Current.Session null in global.asax.
Editar
Junte mais pensamentos. Existem alguns casos em que usar um arquivo temporário pode ser melhor. Por exemplo, se suas imagens são solicitadas com frequência por muitos usuários. Em seguida, armazenar as imagens no disco faria sentido, já que você poderia escrever o arquivo uma vez, isso aumenta a complexidade da manutenção, mas dependendo do tráfego pode valer a pena, pois isso evitaria chamar de volta para a pilha .net e aproveitar o IIS cache de conteúdo estático.