Salve a tutti
sono alle prime armi con asp.net...
Il mio problema è che non riesco a utilizzare i parametri di interpolazione per le immagini, cambio le impostazioni di "InterpolationMode" e di tutti i parametri che riguardano la qualità dell'immagine ma il risultato non cambia cioè i bordi di alcuni tratti appaiono seghettati, mentre la compressione ed il ridimensionamento funzionano..
ecco il codice:
Codice PHP:
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="iso-8859-1"%>
<%@ 
import Namespace="System.IO" %>
<%@ 
import Namespace="System.Drawing" %>
<%@ 
import Namespace="System.Drawing.Imaging" %>
<%@ 
import Namespace="System.Drawing.Drawing2D" %>
<
script language="C#" runat="server">

void Page_Load(Object senderEventArgs e) {
        
        
        
string imageLocation;
        
bool forceaspect true;
        
int newHeight;
        
int newWidth;
        
int reqHeight 100;
        
int reqWidth 100;
        
int origHeight;
        
int origWidth;
        
imageLocation Request.QueryString["Image"];
        if (
Request.QueryString["Height"] != null){
            
reqHeight Convert.ToInt32(Request.QueryString["Height"]);
        }
        if (
Request.QueryString["ForceAspect"] != null){
            
forceaspect Convert.ToBoolean(Request.QueryString["ForceAspect"]);
        }
        if(
Request.QueryString["Width"] != null){
            
reqWidth Convert.ToInt32(Request.QueryString["Width"]);
        }
        if (
Request.QueryString["ForceAspect"] == "true"){
            
forceaspect true;
        }
        
System.Drawing.Bitmap origBitmap = new System.Drawing.Bitmap(Server.MapPath(imageLocation));
        
origHeight origBitmap.Height;
        
origWidth origBitmap.Width;
        
        if (
forceaspect){
            
//Force Aspect Change
            
newHeight reqHeight;
            
newWidth reqWidth;
        }        
        else if (
origBitmap.Width >= origBitmap.Height){
            
//Portrait
            
newWidth reqWidth;
            
newHeight = (int)(((double)origBitmap.Height / (double)origBitmap.Width) * reqWidth);
        }
        else{ 
            
//Landscape
            
newWidth reqWidth;
            
newHeight = (int)(((double)origBitmap.Height / (double)origBitmap.Width) * reqWidth);
        }
        
origBitmap.Dispose();

    
ResizeFile(imageLocationnewWidthnewHeight""95);
}


private 
void Resize(Stream imgStrint widthint heightstring FileNameint compression) {

    
//creo il bitmap dallo stream
    
System.Drawing.Image bmpStream=System.Drawing.Image.FromStream(imgStr);
        


    
//creo un nuovo bitmap
    
Bitmap img;
    

    
Graphics oGraphic Graphics.FromImage(bmpStream);

    
oGraphic.CompositingQuality CompositingQuality.HighQuality;
    
//oGraphic.SmoothingMode = SmoothingMode.HighQuality;
    
oGraphic.InterpolationMode InterpolationMode.HighQualityBicubic;
    
oGraphic.PixelOffsetMode PixelOffsetMode.HighQuality
    
oGraphic.SmoothingMode SmoothingMode.AntiAlias;
    
    
//se indicato lo ridimensiono
    
if (width == || height == 0img=new Bitmap(bmpStream);
    else 
img=new Bitmap(bmpStream,new Size(width,height));
    

        
    
ImageCodecInfo jpegCodecInfo;
    
System.Drawing.Imaging.Encoder encoder;
    
EncoderParameter encoderParameter;
    
EncoderParameters encoderParameters;
    
jpegCodecInfo GetEncoderInfo("image/jpeg");
    
encoder System.Drawing.Imaging.Encoder.Quality;
    
encoderParameters = new EncoderParameters(1);
    
encoderParameter = new EncoderParameter(encodercompression);
    
encoderParameters.Param[0] = encoderParameter;
    
    if (
FileName == "") {
        
img.Save(FileNamejpegCodecInfoencoderParameters);
    } else {
        
Response.ContentType "image/jpeg";
        
img.Save(Response.OutputStreamjpegCodecInfoencoderParameters);
    }
    
img.Dispose();
    
img null;

}

private 
void ResizeFile(string nomefile,int widthint heightstring nuovonomeint compression) {

    
//carico un'immagine in uno stream
    
try {
        
FileStream file=new FileStream(Server.MapPath(nomefile),FileMode.Open);
        
Resize(file,width,height,Server.MapPath(nuovonome),compression);
        
file.Close();
    } catch (
System.IO.FileNotFoundException ex) {
        
Response.Write("l'immagine non esiste");
    }

}

ImageCodecInfo GetEncoderInfo(string mimeType) {
   
ImageCodecInfo[] encoders ImageCodecInfo.GetImageEncoders();
   for (
int j 0jencoders.Lengthj++) {
      if (
encoders[j].MimeType == mimeType) {
           return 
encoders[j];
      }
   }
   return 
null;
}
</script>