image forminsker
Jeg har fået hjælp til denne fil, men jeg syntes den er langsom...Er der nogle der har nogle optimerings mulighedder eller bare en anden script fil... Man skal kunne det samme.
---
<%@ Page Language="C#" %>
<%@ import Namespace="System" %>
<%@ import Namespace="System.Collections" %>
<%@ import Namespace="System.Drawing.Imaging" %>
<script runat="server">
public enum SizeConversionType
{
Type0,
Type1,
Type2,
Type3,
Type4,
Type5,
Type6,
Type7,
Type8,
Type9
}
private const string IMAGE_FOLDER = "";
protected SizeConversionType ConversionType
{
get
{
object o = Request.QueryString["SizeConversionType"];
try
{
return (SizeConversionType)Enum.Parse(typeof(SizeConversionType), o.ToString(), true);
}
catch
{
return SizeConversionType.Type1;
}
}
}
protected string ImageFileName
{
get
{
return (object)Request.QueryString["ImageFileName"] != null ? Request.QueryString["ImageFileName"] : null;
}
}
protected void Page_Load(object sender, System.EventArgs e)
{
string path = Server.MapPath(IMAGE_FOLDER + ImageFileName);
System.Drawing.Image orgImage = System.Drawing.Image.FromFile(path);
int orgWidth = orgImage.Width;
int orgHeight = orgImage.Height;
orgImage.Dispose();
int newWidht = 0;
int newHeigth = 0;
switch(ConversionType)
{
case SizeConversionType.Type0 :
if(orgWidth == 480 && orgHeight == 640)
{
newWidht = 94;
newHeigth = 128;
}
else if(orgWidth == 640 && orgHeight == 480)
{
newWidht = 128;
newHeigth = 94;
}
else
{
newWidht = 128;
newHeigth = 94;
}
break;
case SizeConversionType.Type1 :
if(orgWidth == 480 && orgHeight == 640)
{
newWidht = 309;
newHeigth = 412;
}
else if(orgWidth == 640 && orgHeight == 480)
{
newWidht = 550;
newHeigth = 412;
}
else
{
newWidht = 550;
newHeigth = 412;
}
break;
case SizeConversionType.Type2 :
if(orgWidth == 480 && orgHeight == 640)
{
newWidht = 62;
newHeigth = 82;
}
else if(orgWidth == 640 && orgHeight == 480)
{
newWidht = 80;
newHeigth = 60;
}
else
{
newWidht = 80;
newHeigth =60;
}
break;
case SizeConversionType.Type3 :
if(orgWidth == 480 && orgHeight == 640)
{
newWidht = 48;
newHeigth = 60;
}
else if(orgWidth == 640 && orgHeight == 480)
{
newWidht = 60;
newHeigth = 46;
}
else
{
newWidht = 60;
newHeigth =46;
}
break;
case SizeConversionType.Type4 :
if(orgWidth == 480 && orgHeight == 640)
{
newWidht = 88;
newHeigth = 88;
}
else if(orgWidth == 640 && orgHeight == 480)
{
newWidht = 88;
newHeigth = 88;
}
else
{
newWidht = 88;
newHeigth =88;
}
break;
case SizeConversionType.Type5 :
if(orgWidth == 480 && orgHeight == 640)
{
newWidht = 125;
newHeigth = 125;
}
else if(orgWidth == 640 && orgHeight == 480)
{
newWidht = 125;
newHeigth = 125;
}
else
{
newWidht = 125;
newHeigth =125;
}
break;
case SizeConversionType.Type6 :
if(orgWidth == 480 && orgHeight == 640)
{
newWidht = 101;
newHeigth = 76;
}
else if(orgWidth == 640 && orgHeight == 480)
{
newWidht = 101;
newHeigth = 76;
}
else
{
newWidht = 101;
newHeigth =76;
}
break;
case SizeConversionType.Type7 :
if(orgWidth == 480 && orgHeight == 640)
{
newWidht = 74;
newHeigth = 74;
}
else if(orgWidth == 640 && orgHeight == 480)
{
newWidht = 74;
newHeigth = 74;
}
else
{
newWidht = 74;
newHeigth =74;
}
break;
case SizeConversionType.Type8 :
if(orgWidth == 480 && orgHeight == 640)
{
newWidht = 35;
newHeigth = 35;
}
else if(orgWidth == 640 && orgHeight == 480)
{
newWidht = 35;
newHeigth = 35;
}
else
{
newWidht = 35;
newHeigth =35;
}
break;
case SizeConversionType.Type9 :
if(orgWidth < 400 )
{
newWidht = 150;
newHeigth = 200;
}
else if(orgHeight < 400)
{
newWidht = 150;
newHeigth = 200;
}
else
{
newWidht = 150;
newHeigth = 200;
}
break;
}
System.Drawing.Image image = ImageResizer.RezizeImage(path, newWidht, newHeigth);
Response.ContentType = "image/jpeg";
image.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);
image.Dispose();
}
public class ImageResizer
{
public static System.Drawing.Bitmap RezizeImage(string filePath, int width, int height)
{
System.Drawing.Bitmap bmpOut = null;
try
{
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(filePath);
bmpOut = new System.Drawing.Bitmap(width, height);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmpOut);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.FillRectangle(System.Drawing.Brushes.White, 0, 0, width, height);
g.DrawImage(bmp, 0, 0, width, height);
bmp.Dispose();
}
catch
{
return null;
}
return bmpOut;
}
}
</script>
<html>
<head>
</head>
<body>
<form runat="server">
<!-- Insert content here -->
</form>
</body>
</html>
---
