Ciao a tutti,
sto utilizzando questo codice per fare il ridimenamento delle fotografie:
codice:
<%@ Page Language="C#" %>
<%@ import Namespace="System.Drawing" %>
<%@ import Namespace="System.Drawing.Imaging" %>
<%@ import Namespace="System.Text.RegularExpressions" %>
<script runat="server">
int MaxWidth = 120; // Larghezza massima dopo il quale l'immagine viene ridimensionata
int MaxHeight = 90; // Altezza massima dopo il quale l'immagine viene ridimensionata
int valorelarghezza = 120;
int valorealtezza = 90;
System.Drawing.Image oldImage, newImage;
void Page_Load(Object sender, EventArgs e) {
if ( Request.QueryString["FileName"] != null ) {
string strFileName = Convert.ToString(Request.QueryString["FileName"]);
if ( strFileName != "" ) {
try {
oldImage = System.Drawing.Image.FromFile( Server.MapPath(strFileName) );
int larghezzafoto = oldImage.Width;
int altezzafoto = oldImage.Height;
int confrontolarghezza = larghezzafoto - valorelarghezza;
int confrontoaltezza = altezzafoto - valorealtezza;
if ( confrontolarghezza > 0 || confrontoaltezza > 0 ) {
if ( confrontolarghezza > confrontoaltezza ) {
altezzafoto = ((valorelarghezza*altezzafoto)/larghezzafoto);
if ( (valorealtezza - altezzafoto) < 6 ) {
altezzafoto = valorealtezza;
}
larghezzafoto = valorelarghezza;
} else {
larghezzafoto = ((valorealtezza*larghezzafoto)/altezzafoto);
if ( (valorelarghezza - larghezzafoto) < 6 ) {
larghezzafoto = valorelarghezza;
}
altezzafoto = valorealtezza;
}
}
if ( oldImage.Width > MaxWidth || oldImage.Height > MaxHeight ) {
// Immagine troppo grande, visualizzo la miniatura
newImage = oldImage.GetThumbnailImage( (larghezzafoto), (altezzafoto), null, IntPtr.Zero);
Response.ContentType = "image/jpeg";
newImage.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
oldImage.Dispose();
newImage.Dispose();
oldImage = null;
newImage = null;
} else {
// Immagine piccola, non faccio nulla
Response.ContentType = "image/jpeg";
oldImage.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
oldImage.Dispose();
oldImage = null;
}
} catch (Exception ex) {
Response.Write(ex.Message);
}
}
}
}
private bool IsInteger(string strTmp) {
Regex objNotIntPattern = new Regex("[^0-9-]");
Regex objIntPattern = new Regex("^-[0-9]+$|^[0-9]+$");
return !objNotIntPattern.IsMatch(strTmp) && objIntPattern.IsMatch(strTmp);
}
</script>
che richieamo così:
codice:
ridimensionacaseelenco.aspx?FileName=/public/case/nomefile.jpg
tutto bene se le fotografie risiedono nel dominio sul quale sto lavorando.
Se invece cerco di pescare le fotografie da un altro mio dominio così:
codice:
ridimensionacaseelenco.aspx?FileName=http://www.domini1.it/public/case/nomefile.jpg
mi da questo errore:
'http://www.dominio1.it/public/case/nomefile.jpg' is not a valid virtual path
Come posso risolvere?
Fatemi sapere.
Grazie mille!