35 messaggi dal 28 novembre 2008
Sulla rete ho trovato uno script che data in ingresso una stringa mi restituisce un'immagine bitmap (.bmp) della string ain questione.
Io uso questo script per generare un'immagine per il captcha.
Di seguito la parte finale del codice.

if (ImageWidth mod 4) <> 0 then
BmpEndLine = String((4-(ImageWidth mod 4))*2,"0")
else
BmpEndLine = vbNullString
end if
BmpInfoHeader = Array("28000000","00000000","00000000","0100","0800","00000000","00000000","120B0000","120B0000","00000000","00000000")
BmpInfoHeader(1) = FormatHex(Hex(ImageWidth),4,0,true)
BmpInfoHeader(2) = FormatHex(Hex(ImageHeight),4,0,true)
BmpInfoHeader(6) = FormatHex(Hex((ImageHeight * ImageWidth) + (ImageHeight * (Len(BmpEndLine) / 2))),4,0,true)
BmpInfoHeader(9) = FormatHex(Hex(Len(BmpColorMap)/8),4,0,true)
BmpInfoHeader(10) = BmpInfoHeader(9)
BmpHeader = Array("424D","00000000","0000","0000","00000000")
BmpHeader(1) = FormatHex(Hex((Len(Join(BmpHeader,"")) / 2) + (Len(Join(BmpInfoHeader,"")) / 2) + (Len(BmpColorMap) / 2) + (ImageHeight * ImageWidth) + (ImageHeight * (Len(BmpEndLine) / 2))),4,0,true)
BmpHeader(4) = FormatHex(Hex((Len(Join(BmpHeader,"")) / 2) + (Len(Join(BmpInfoHeader,"")) / 2) + (Len(BmpColorMap) / 2)),4,0,true)

Response.Clear
Response.Buffer = True
Response.ContentType = "image/bmp"
Response.AddHeader "Content-Disposition", "inline; filename=captcha.bmp"
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1

SendHex(Join(BmpHeader,""))
SendHex(Join(BmpInfoHeader,""))
SendHex(BmpColorMap)
for y=ImageHeight to 1 step -1
for x=1 to ImageWidth
tmpHex = Bitmap(y,x)
if tmpHex = vbNullString then
SendHex(BColor)
else
SendHex(tmpHex)
end if
next
SendHex(BmpEndLine)
next
Response.Flush


Il mio problema adesso è questo.
Siccome su internet il formato bitmap non web friendly, avrei intensione d far creare e restituire allo script un'immagine in formato jpg o png.

la prima cosa che ho fatto è stata modificare il Response.ContentType e il
Response.AddHeader ma ovviamente non ha funzionato perchè lo script definisci anche le informazioni per l'header dell'immagine bmp.

Qualcuno sa dirmi come dovrei modificare lo script per fargli creare e restituire una jpg?

Grazie e Ciao
Modificato da spartaseventy il 24 febbraio 2010 16.08 -
Impensabile farlo via VBScript: o usi componenti COM oppure ti affidi a qualche servizio che gestisca il captcha per te (tipo recaptcha, quello usato da facebook tanto per intenderci!)
HTH

Matteo Casati
GURU4.net
35 messaggi dal 28 novembre 2008
Non sarebbe possibile nemmeno fare una conversione al volo da bmp ad un altro formato?

Grazie
Senza COM no; le bitmap sono l'unico formato grafico facile da creare (in pratica il file dice punto per punto di che colore è...); quando ti servono algoritmi di compressione o cose simili VBScript dimostra tutti i suoi limiti.
E pensare che in ASP.NET te la caveresti con 3 righe di codice sì e no

Matteo Casati
GURU4.net

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.