Il modo forse l'ho trovato ma non rieco ad unire i due codici, con il codice qua di seguito non mi fa + vedere le immagini ridimensionate.
codice:
<%@ Page Language="C#" %>
<%@ import Namespace="System.Drawing" %>
<%@ import Namespace="System.Drawing.Imaging" %>
<%@ import Namespace="System.Text.RegularExpressions" %>
<script runat="server">
/*
-------------------------------------------------
DESCRIZIONE:
la pagina che contiene le immagini conterrà una o più righe simili alle seguenti
avvalendosi di pagina.aspx per effettuare il ridimensionamento
ESEMPI:
-------------------------------------------------
1) nuove dimensioni stabilite
<img src=pagina.aspx?FileName=/images/myPicture.jpg&newHeight=100&newWidth=100&MaxWidth=200&MaxHeight=200>
-------------------------------------------------
2) nove dimensioni proporzionate in scala
<img src=pagina.aspx?FileName=/images/myPicture.jpg&ScaleFactor=3&MaxWidth=200&MaxHeight=200>
-------------------------------------------------
*/
int ScaleFactor ; // eventuale fattore di scala per la miniatura
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) );
if ( oldImage.Width > Convert.ToInt32(Request.QueryString["MaxWidth"]) || oldImage.Height > Convert.ToInt32(Request.QueryString["MaxHeight"])) {
//-------------------------------------------------
// Immagine troppo grande, visualizzo la miniatura
//-------------------------------------------------
if ( Request.QueryString["ScaleFactor"] != null && Convert.ToString(Request.QueryString["ScaleFactor"]) != "" && IsInteger(Convert.ToString(Request.QueryString["scalefactor"])) ) ScaleFactor = Convert.ToInt32(Request.QueryString["ScaleFactor"]);
if ( ScaleFactor > 0) {
newImage = oldImage.GetThumbnailImage( (oldImage.Width*ScaleFactor/100), (oldImage.Height*ScaleFactor/100), null, IntPtr.Zero);
}else{
if (( Convert.ToInt32(Request.QueryString["newWidth"]) > 0) && ( Convert.ToInt32(Request.QueryString["newHeight"]) > 0)){
newImage = oldImage.GetThumbnailImage(Convert.ToInt32(Request.QueryString["newWidth"]),Convert.ToInt32(Request.QueryString["newHeight"]), null, IntPtr.Zero);
}else{
// larghezza passata da Querystring
if (Convert.ToInt32(Request.QueryString["newWidth"]) > 0){
// calcolo un' altezza proporzionata alla larghezza passata
int newHeight = (Convert.ToInt32(Request.QueryString["newWidth"])*oldImage.Height)/oldImage.Width;
newImage = oldImage.GetThumbnailImage( Convert.ToInt32(Request.QueryString["newWidth"]),newHeight, null, IntPtr.Zero);
// altezza passata da Querystring
}else{
// calcolo una larghezza proporzionata all'alteza passata
int newWidth = (Convert.ToInt32(Request.QueryString["newHeight"])*oldImage.Width)/oldImage.Height;
newImage = oldImage.GetThumbnailImage( newWidth, Convert.ToInt32(Request.QueryString["newHeight"]), 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);
}
//---------------------------------------
//CODICE PER METTERE LA SCRITTA
//---------------------------------------
void Page_Load(object sender, EventArgs e) {
CreaImmagine("© TESTO DA SCIVERE SULLA FOTO");
}
void CreaImmagine(string drawString) {
// Importo il file di sfondo
System.Drawing.Image objBitmap =
//originale
//System.Drawing.Image.FromFile(Server.MapPath("immagini/estcbck1.jpg"));
System.Drawing.Image.FromFile(Server.MapPath(Request.QueryString["image"]));
Graphics objGraphic = Graphics.FromImage(objBitmap);
// Formatto il testo da inserire
Font drawFont = new Font("Verdana", 10);
SolidBrush drawBrush = new SolidBrush(Color.Black);
// La posizione del testo
PointF drawPoint = new PointF(1.0F,1.0F);
// Disegno la stringa di testo sull'immagine
objGraphic.DrawString(drawString, drawFont, drawBrush, drawPoint);
// Imposto la tipologia di output
//Response.ContentType = "image/jpeg";
// Salvo in output l'immagine
objBitmap.Save(Response.OutputStream, ImageFormat.Jpeg);
objBitmap.Dispose();
}
</script>