Beh questa davvero è bella: prendo paro paro dalle guide della hostingsolution (dove hosta il mio sitozzo) questo codice di esempio, per fare un Resize on server di un'immagine (posso perchè il server ha installate le estensioni ASPIMAGE).
E qui arriva la sorpresona:
------------
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> ASPImage - Resize test </title>
</head>
<body>
<%
Set Image = Server.CreateObject("AspImage.Image")
Image.LoadImage server.MapPath("/") & "/images/grafico.jpg"
larghezza = Image.MaxX
altezza = Image.MaxY
maxaltezza = 100
maxlarghezza = 200
rapporto1 = larghezza / maxlarghezza
rapporto2 = altezza / maxaltezza
if rapporto1 > rapporto2 then
rapporto = rapporto1
else
rapporto = rapporto2
end if
nuovalarghezza = int(larghezza / rapporto)
VVoVe: OVERFLOW
nuovaaltezza = int(altezza / rapporto)
Image.ResizeR nuovalarghezza,nuovaaltezza
Image.FileName = server.MapPath("/") & "/images/thumb-grafico.jpg"
if Image.SaveImage then
Response.Write "[img][/img]"
else
Response.Write "<h2>qualcosa è andato storto</h2>"
end if
Set Image = nothing
%>
</body>
</html>
-----------
Dai che scherzo è questo??
Cioè INT() non arrotonda perchè o l'input o il risultato trabocca dalla variabile int che appunto possiede solo 32 bit (almeno credo sia questo l'errore). Allora provo con LONG() (mi pare lavori coi 64 bit) ma niente, overflow pure con quello. Ma come è possibile??
Qualcuno può illuminarmi???