// 生成略缩图
string strImage = null;
string strRegex = @"
.*?)(""|')?(/s|>)";
MatchCollection mc = Regex.Matches( FreeTextBox.Text
, strRegex,RegexOptions.IgnoreCase | RegexOptions.Singleline
);
foreach(Match m in mc)
{
strImage = m.Groups["src"].ToString();
string strSrcImgPath = Server.UrlDecode(Server.MapPath(strImage));
if( !File.Exists(strSrcImgPath) )
break;
string strDestImgPath =
Server.MapPath(GV.s_strSmallImgPath)
+ GV.GetFileChecksum(strSrcImgPath)
+ ".jpg";
System.Drawing.Image srcImg = System.Drawing.Image.FromFile(strSrcImgPath);
// 计算略缩图大小
float cx, cy;
if( srcImg.Height > GV.s_fSmallImgHeight )
{
// 比例系数
float k = (float)srcImg.Height / GV.s_fSmallImgHeight;
cy = srcImg.Height / k;
cx = srcImg.Width / k;
}
else
{
cx = srcImg.Width;
cy = srcImg.Height;
}
// 创建略缩图
System.Drawing.Image.GetThumbnailImageAbort callb =
new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
System.Drawing.Image destImg = srcImg.GetThumbnailImage( (int)cx
, (int)cy
, callb
, new System.IntPtr() );
srcImg.Dispose();
destImg.Save( strDestImgPath, ImageFormat.Jpeg);
destImg.Dispose();
int nIndex = strDestImgPath.LastIndexOf("//");
rs.PutCollect( "SmallImg",
strDestImgPath.Substring( nIndex + 1, strDestImgPath.Length - nIndex - 1) );
break;
}