<%@ Import Namespace="System.Collections" %>
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Drawing.Imaging" %>
<%@ Import Namespace="System.Drawing.Drawing2D" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Text" %>
<script Language="C#" runat="server">
protected Size ThumbNailSize = new Size(75,75);
protected string ThumbNailName = "_thumbnail";
private void Page_Load(object sender, System.EventArgs e)
{
if (RequestObject("generate") == "1")
{
GenerateThumbNailImagesForFolder(RequestObject("imgfolder"));
}
this.RW(GenerateHTMLPageForFolder(RequestObject("imgfolder")));
}
public void GenerateThumbNailImagesForFolder(string FolderName)
{
string sPhysicalPath="";
string sFileName="";
string sThumbName="";
sPhysicalPath = Server.MapPath(FolderName);
DirectoryInfo oDir = new DirectoryInfo(sPhysicalPath);
try
{
FileInfo[] oDeleteFiles = oDir.GetFiles();
foreach (FileInfo oFile in oDeleteFiles)
{
sFileName = oFile.Name.ToLower();
if (sFileName.IndexOf("thumbnail") > 0) { oFile.Delete(); }
}
FileInfo[] oFiles = oDir.GetFiles();
foreach (FileInfo oFile in oFiles)
{
sFileName = oFile.Name.ToLower();
sThumbName = sFileName.Replace(".",this.ThumbNailName + ".");
if (sFileName.IndexOf(".gif") > 0)
{
this.GenerateThumbNail(sPhysicalPath,sFileName,sThumbName,ImageFormat.Gif);
}
if (sFileName.IndexOf(".jpg") > 0)
{
this.GenerateThumbNail(sPhysicalPath,sFileName,sThumbName,ImageFormat.Jpeg);
}
if (sFileName.IndexOf(".bmp") > 0)
{
this.GenerateThumbNail(sPhysicalPath,sFileName,sThumbName,ImageFormat.Bmp);
}
}
}
catch (Exception) { }
}
public void GenerateThumbNail(string sPhysicalPath,string sOrgFileName,
string sThumbNailFileName,ImageFormat oFormat)
{
try
{
System.Drawing.Image oImg = System.Drawing.Image.FromFile(sPhysicalPath + @"\" + sOrgFileName);
System.Drawing.Image oThumbNail = new Bitmap(this.ThumbNailSize.Width,
this.ThumbNailSize.Height, oImg.PixelFormat);
Graphics oGraphic = Graphics.FromImage(oThumbNail);
oGraphic.CompositingQuality = CompositingQuality.HighQuality ;
oGraphic.SmoothingMode = SmoothingMode.HighQuality ;
oGraphic.InterpolationMode = InterpolationMode.HighQualityBicubic ;
Rectangle oRectangle = new Rectangle(0, 0, this.ThumbNailSize.Width, this.ThumbNailSize.Height);
oGraphic.DrawImage(oImg, oRectangle);
oThumbNail.Save(sPhysicalPath + @"\" + sThumbNailFileName,oFormat);
oImg.Dispose();
}
catch (Exception) { }
}
public string GenerateHTMLPageForFolder(string FolderName)
{
string sPhysicalPath="";
string sFileName="";
int nFound=0;
int nCol=0;
int nMaxCols=7;
StringBuilder oString = new StringBuilder();
oString.Append("<html><body><table border=0 cellspacing=2 cellpadding=2 width='80%' align=center>");
try
{
sPhysicalPath = Server.MapPath(FolderName);
DirectoryInfo oDir = new DirectoryInfo(sPhysicalPath);
FileInfo[] oFiles = oDir.GetFiles();
foreach (FileInfo oFile in oFiles)
{
sFileName = oFile.Name.ToLower();
nFound++;
if (sFileName.IndexOf("thumbnail") > 0)
{
nCol++;
if (nCol == 1) { oString.Append("<tr>"); }
if ((sFileName.IndexOf(".gif") > 0) || (sFileName.IndexOf(".jpg") > 0) || (sFileName.IndexOf(".bmp") > 0))
{
oString.Append("<td align=left>");
oString.Append("<a href=" + FolderName + "/" + sFileName.Replace(this.ThumbNailName,""));
oString.Append(" target=_blank>");
oString.Append("<img src=" + FolderName + "/" + sFileName + " border=0>");
oString.Append("</a>");
oString.Append("</td>");
}
if (nCol == nMaxCols) { nCol = 0; oString.Append("</tr>"); }
}
}
if ((nFound >0) && (nCol < nMaxCols))
{
nCol = nMaxCols - nCol;
oString.Append("<td colspan=" + nCol.ToString() + "> </td></tr>");
}
}
catch (Exception) { }
oString.Append("</table></body></html>");
return oString.ToString();
}
public void RW(string sVal)
{
Response.Write(sVal +'\n');
}
public string RequestObject(string sName)
{
string sRet="";
try { sRet = Request[sName].ToString().Trim(); }
catch (Exception) { sRet = "";}
return sRet;
}
</script>
|