Creare immagini e grafici con ASP.NET

di Andrea Zani, in ASP.NET,
  • 0
  • 0
  • 0
  • 15,71 KB

I vantaggi di ASP.NET sulle ASP tradizionali sono enormi. Le limitazioni che affliggevano le ASP e che costringevano in molti casi il programmatore all'uso di oggetti COM esterni sono ormai un lontano ricordo dopo l'avvento della tecnologia .NET.

Se in una determinata pagina ASP c'era bisogno di consentire l'upload di file da parte dell'utente, il programmatore era obbligato all'uso di componenti esterni da installare sul server o a complessi script; per accedere direttamente via FTP a un server, per controllare una casella di posta elettronica, per la gestione diretta di grafica, un po' per tutto serviva un componente esterno che non sempre era possibile installare sul server. In questo articolo spiegherò come con ASP.NET sia facile costruire delle immagini con solo l'ausilio delle classi del nuovo framework.

Questa è la configurazione minima per provare gli esempi allegati nell'articolo:

  • Windows 2000 o Windows XP Professional con IIS
  • .NET Framework.net 1.0

Contatore

Una volta scaricato l'esempio e avviato in Explorer, avremo questa schermata:

Immagine

E' una normale pagina HTML (default.htm), solo che il contatore visibile nella parte superiore è un'immagine GIF creata da uno script ASP.NET e inserita nella pagine con un semplice:

 <img src="contatore.aspx"> 

Il funzionamento di questo script non è molto complesso. Se si osserva la directory che contiene gli esempi, si vedranno dieci immagini GIF, ognuna contenente un numero. Sono queste immagini a formare la GIF finale contenente il numero di visite. E' facilmente intuibile come sia semplice modificare tali immagini a proprio piacimento.

Nella prima parte vengono dichiarate le classi utilizzate:

 <%@ Page Language="vb" %>
<% @Import NameSpace="System.Drawing" %>
<% @Import NameSpace="System.Drawing.Graphics" %>
<% @Import NameSpace="System.Drawing.Imaging" %>
<% @Import Namespace="System" %>
<% @Import Namespace="System.IO" %>

Le righe successive usano la classe StremReader e StreamWriter per leggere e scrivere direttamente un file di testo in una cartella.Quindi con:

 dim bitmap as new Bitmap(110,28) 

Creiamo una bitmap dalle dimensione di 110x28 che sarà la dimensione della nostra immagine.

 dim g as Graphics=Graphics.FromImage(bitmap)
g.FillRectangle(new SolidBrush(color.Black),0,0,110,28)

Quindi con queste due righe riempiamo l'intera immagine di colore nero.

 dim originalBitmap as Bitmap
stringa=trim(stringa)
t=len(stringa)
for x=t to 5:stringa="0"+stringa:next
for t=0 to 5
numero=asc(mid(stringa,t+1,1))-48
originalBitmap=new Bitmap(server.mappath(cstr(numero)+".gif"))
g.DrawImage(originalBitmap, 1+t*18, 1)
next
Queste è il codice che prende le singole immagini GIF e le unisce nell'immagine che sarà visualizzata. In "stringa" è presente il numero di visita attuale letto da un file di testo. Quindi con la terzultima e penultima riga viene caricata in memoria la GIF associata al numero e "copiata" nella GIF finale.

 response.contenttype="Image/Gif"
bitmap.save(Response.OutputStream,ImageFormat.Gif)
bitmap.dispose()
originalBitmap.dispose()

Queste sono i comandi più importanti. La prima riga imposta come Content Type il formato GIF (è possibile inserire moltissimi formati grafici, JPeg, PNG, ecc?). La seconda riga serve per memorizzare la bitmap appena creata. In questo esempio l'immagine viene visualizzata subito grazie all'opzione

Response.OutputStream
. Ma nulla ci vieta di memorizzarla in una cartella del server con la sinstassi:

 bitmap.save("percorso/immagine.gif",ImageFormat.Gif)

Infine le ultime due righe cancellano le risorse per le bitmap utilizzate.

2 pagine in totale: 1 2

Attenzione: Questo articolo contiene un allegato.

Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti