ti spiego come faccio io, per ottenere le immagini di sotto; vedi se ti può servire.
tipo_2
 
 
tipo_3

tipo_3, immagine fusa su un'altra

per prima cosa mi scarico le due dll all'indirizzo:
http://web.tiscali.it/archivio_esempi/zip/gdi.zip
e le copio nella directory "bin" del sito web
dopo di che ho la pagina a.asp
	codice:
	<% option explicit  %>
<% Response.CharSet = "utf-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    [img]a.aspx?p_img=http://static.panoramio.com/photos/original/216697.jpg&p_width=400&p_opzione=3[/img]
</body>
</html>
 
L'elemento <img, ha come sorgente, una pagina aspx, a.aspx.
Manda tre parametri:
p_img -> nome immagine, che può essere o un percorso fisico (c:\immagini\img.jpg), o un percorso logico (../img.png), o un indirizzo remoto (http://www/xxx/img.tif)
p_width -> è la dimensione max dell'immagine che voglio ottenere
p_opzione -> valori 1, 2, 3, l'ho messo per fare vedere come funziona
pagina a.aspx
	codice:
	<%@ Page Language="VB" %>
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="j=gdi.img" %>
<script runat="server">
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        '---------------------------------------------------------------------------
        'si debbono ricevere i seguenti parametri get
        '   p_img           : percorso dell'immagine, fisico, logico, remoto
        '   p_width         : dimensione max immagine
        '   p_opzione       : 1=ridimensiono, 2 adatto, 3 fondo
        '---------------------------------------------------------------------------
        Dim p_img As String = Request.QueryString("p_img")
        Dim p_width As String = Request.QueryString("p_width")
        Dim p_opzione As String = Request.QueryString("p_opzione")
        
        
        'messaggio in caso di errore
        Dim result As String = ""
        Dim bmp As Bitmap = Nothing
        
        Try
            'leggo i parametri p_img e p_width
            p_img = Request.QueryString("p_img")
            p_width = Request.QueryString("p_width")
            
            
            'controllo che vengano ricevuti e che siano del tipo giusto
            If String.IsNullOrEmpty(p_img) Then result &= "p_img non valorizzato" & vbNewLine
            If String.IsNullOrEmpty(p_width) OrElse Integer.TryParse(p_width, Nothing) = False Then result &= "p_width non valorizzato o non numerico" & vbNewLine
            
            If String.IsNullOrEmpty(p_opzione) Then p_opzione = "1"
            'se il messaggio è valorizzato visualizzo il messaggio di errore
            If result.Length > 0 Then Throw New Exception(result)
             
            'leggo l'immagine
            bmp = j.ImgLoad(p_img)
           
            
            
            Select Case p_opzione
                Case "1" 'ridimensiono senza adattarla al contenitore
                    j.ImgResize(bmp, CInt(p_width))
                    
                Case "2" 'adatto l'immagine ad un contenitore nero di date dimensioni
                    j.ImgFit(bmp, 400, 400, Color.Black)
                
                Case "3" 'fondo l'immagine nel contenitore (che può essere un'altra immagine) centrandola
                    'ridimensiono l'immagine
                    j.ImgResize(bmp, CInt(p_width))
                    
                    'creo una immagine di sottofondo oppure apro una immagine che faccia da sottofondo
                    Dim sfondo As Bitmap = j.ImgCreateBitmap(450, 450, Color.Black)
                    'fondo l'immagine nello sfondo
                    j.ImgMerge(sfondo, bmp)
                    
                    'ricopio l'immagine finale, in bmp, che è quella che voglio
                    bmp.Dispose()
                    bmp = sfondo
                    
            End Select
            
            'salvo l'immagine nel flusso di uscita, formato jpg, compressione predefinita
            j.ImgSaveToResponseOutputStream(bmp)
            
        Catch ex As Exception
            Try
                Using bmp1 As Bitmap = j.ImgFromText(ex.Message, Color.White, Brushes.Black, New Font("Arial", 12, FontStyle.Regular, GraphicsUnit.Point))
                    j.ImgSaveToResponseOutputStream(bmp1)
                End Using
            Catch
            End Try
                   
        Finally
            If bmp IsNot Nothing Then bmp.Dispose()
        End Try
        
    End Sub
    
    
</script>