protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { int index = Convert.ToInt32(e.CommandArgument); //apply if (e.CommandName == "_apply") { MojoCube.Web.Site.Config config = new MojoCube.Web.Site.Config(); config.GetData(1, MojoCube.Api.UI.Language.GetLanguage()); config.SiteTheme = ((Label)GridView1.Rows[index].FindControl("lblFileName")).Text; config.UpdateData(config.pk_Config); AlertDiv.InnerHtml = MojoCube.Web.String.ShowAlert("success", "主题已修改成功"); } //delete if (e.CommandName == "_delete") { string fileName = ((Label)GridView1.Rows[index].FindControl("lblFileName")).Text; bool IsDelete = MojoCube.Api.File.IO.DeleteDirectory(Server.MapPath("../../Themes/" + fileName)); if (IsDelete) { AlertDiv.InnerHtml = MojoCube.Web.String.ShowAlert("success", "主题已删除成功"); } else { AlertDiv.InnerHtml = MojoCube.Web.String.ShowAlert("danger", "主题已删除失败"); } } MojoCube.Web.Site.Cache cache = new MojoCube.Web.Site.Cache(); cache.RemoveAllCache(); GridBind(); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Request.QueryString["type"] != null) { switch (Request.QueryString["type"]) { case "0": MojoCube.Web.Site.Config config = new MojoCube.Web.Site.Config(); config.GetData(1, MojoCube.Api.UI.Language.GetLanguage()); if (!config.IsSiteOpen) { lblInfo.Text = config.ClosedInfo; } break; } } this.Title = lblInfo.Text; } }
protected void btnSave_Click(object sender, EventArgs e) { MojoCube.Web.Site.Config config = new MojoCube.Web.Site.Config(); config.GetData(1, MojoCube.Api.UI.Language.GetLanguage()); if (config.pk_Config > 0) { config.SiteName = txtSiteName.Text.Trim(); config.SiteTitle = txtSiteTitle.Text.Trim(); config.SiteKeyword = txtSEO_Keyword.Text.Trim(); config.SiteDescription = txtSEO_Description.Text.Trim(); config.SiteUrl = txtSiteUrl.Text.Trim(); config.SiteCopyRight = txtContent.Text.Trim(); config.SiteContact = txtSiteContact.Text.Trim(); config.ContactUs = txtDescription.Text.Trim(); config.StatisticsCode = txtStatisticsCode.Text.Trim(); config.ShareCode = txtShareCode.Text.Trim(); config.IsSiteOpen = MojoCube.Web.String.StringToBool(ddlStatus.SelectedValue); config.SiteCounter = MojoCube.Web.String.StringToBool(ddlCounter.SelectedValue); config.IsBoundIP = MojoCube.Web.String.StringToBool(ddlBoundIP.SelectedValue); config.BoundIP = txtBoundIP.Text.Trim(); config.UrlExtension = ddlExtension.SelectedValue; config.SearchType = int.Parse(ddlSearchType.SelectedValue); config.SiteNotify = txtNotify.Text.Trim(); config.ClosedInfo = txtClosedInfo.Text.Trim(); //Logo string logo = GetLogo(); if (logo != "") { config.SiteLogo = logo; } config.SiteLogoPath = "Site/Logo"; config.ArticleImagePath = "Article/[Category]"; config.ProductImagePath = "Product/[Category]"; config.ADImagePath = "Site/Banner"; config.WM_Text = txtShowWM.Text.Trim(); //字体、大小 if (txtShowFS.Text.Trim() != "") { config.WM_Font = txtShowFS.Text.Trim().Split('|')[0]; config.WM_FontSize = int.Parse(txtShowFS.Text.Trim().Split('|')[1]); } //边距 if (txtPadding.Text.Trim() != "") { config.WM_Bottom = int.Parse(txtPadding.Text.Trim().Split('|')[0]); config.WM_Right = int.Parse(txtPadding.Text.Trim().Split('|')[1]); } config.WM_Rotate = int.Parse(ddlRotate.SelectedValue); config.WM_Size = int.Parse(ddlSize.SelectedValue); config.WM_Alpha = int.Parse(ddlAlpha.SelectedValue); //RGB if (txtRGB.Text.Trim() != "") { config.WM_Red = int.Parse(txtRGB.Text.Trim().Split('|')[0]); config.WM_Green = int.Parse(txtRGB.Text.Trim().Split('|')[1]); config.WM_Blue = int.Parse(txtRGB.Text.Trim().Split('|')[2]); } config.WM_IsShow = MojoCube.Web.String.StringToBool(ddlShowWM.SelectedValue); //限制宽高 if (txtShowWH.Text.Trim() != "") { config.WM_Show_W = int.Parse(txtShowWH.Text.Trim().Split('|')[0]); config.WM_Show_H = int.Parse(txtShowWH.Text.Trim().Split('|')[1]); } config.WM_Mode = MojoCube.Web.String.StringToBool(ddlModeWM.SelectedValue); //水印图片 string wm = GetWM(); if (wm != "") { config.WM_ImagePath = wm; } config.ShowService = MojoCube.Web.String.StringToBool(ddlService.SelectedValue); config.ArticleTitleLength = MojoCube.Web.String.ToInt(txtArticleTitleLength.Text.Trim()); config.Terms = txtTerms.Text.Trim(); config.UpdateData(config.pk_Config); } else { config.IndexID = 1; config.SiteName = txtSiteName.Text.Trim(); config.SiteTitle = txtSiteTitle.Text.Trim(); config.SiteKeyword = txtSEO_Keyword.Text.Trim(); config.SiteDescription = txtSEO_Description.Text.Trim(); config.SiteContentType = "text/html; charset=utf-8"; config.SiteUrl = txtSiteUrl.Text.Trim(); config.SiteLogo = GetLogo(); config.SiteCopyRight = txtContent.Text.Trim(); config.SiteContact = txtSiteContact.Text.Trim(); config.SiteNotify = txtNotify.Text.Trim(); config.MapCode = string.Empty; config.StatisticsCode = txtStatisticsCode.Text.Trim(); config.ShareCode = txtShareCode.Text.Trim(); config.OtherMeta = string.Empty; config.ContactUs = txtDescription.Text.Trim(); config.IsSiteOpen = MojoCube.Web.String.StringToBool(ddlStatus.SelectedValue); config.ClosedInfo = txtClosedInfo.Text.Trim(); config.ShowPageSize = 10; config.AllowComment = true; config.SiteLogoPath = "Site/Logo"; config.ArticleImagePath = "Article/[Category]"; config.ProductImagePath = "Product/[Category]"; config.ADImagePath = "Site/Banner"; config.ImgSize_S_W = 120; config.ImgSize_S_H = 100; config.ImgSize_M_W = 200; config.ImgSize_M_H = 200; config.SiteTheme = "Default"; config.WM_Text = txtShowWM.Text.Trim(); //字体、大小 if (txtShowFS.Text.Trim() != "") { config.WM_Font = txtShowFS.Text.Trim().Split('|')[0]; config.WM_FontSize = int.Parse(txtShowFS.Text.Trim().Split('|')[1]); } else { config.WM_Font = "Arial"; config.WM_FontSize = 50; } //边距 if (txtPadding.Text.Trim() != "") { config.WM_Bottom = int.Parse(txtPadding.Text.Trim().Split('|')[0]); config.WM_Right = int.Parse(txtPadding.Text.Trim().Split('|')[1]); } else { config.WM_Bottom = 10; config.WM_Right = 10; } config.WM_Rotate = int.Parse(ddlRotate.SelectedValue); config.WM_Size = int.Parse(ddlSize.SelectedValue); config.WM_Alpha = int.Parse(ddlAlpha.SelectedValue); //RGB if (txtRGB.Text.Trim() != "") { config.WM_Red = int.Parse(txtRGB.Text.Trim().Split('|')[0]); config.WM_Green = int.Parse(txtRGB.Text.Trim().Split('|')[1]); config.WM_Blue = int.Parse(txtRGB.Text.Trim().Split('|')[2]); } else { config.WM_Red = 255; config.WM_Green = 255; config.WM_Blue = 255; } config.WM_IsShow = MojoCube.Web.String.StringToBool(ddlShowWM.SelectedValue); //限制宽高 if (txtShowWH.Text.Trim() != "") { config.WM_Show_W = int.Parse(txtShowWH.Text.Trim().Split('|')[0]); config.WM_Show_H = int.Parse(txtShowWH.Text.Trim().Split('|')[1]); } else { config.WM_Show_W = 300; config.WM_Show_H = 300; } config.WM_Mode = MojoCube.Web.String.StringToBool(ddlModeWM.SelectedValue); config.WM_ImagePath = GetWM(); config.SiteCounter = MojoCube.Web.String.StringToBool(ddlCounter.SelectedValue); config.SiteFlow = 0; config.UrlExtension = ddlExtension.SelectedValue; config.IsBoundIP = MojoCube.Web.String.StringToBool(ddlBoundIP.SelectedValue); config.BoundIP = txtBoundIP.Text.Trim(); config.Target = "_self"; config.SearchType = int.Parse(ddlSearchType.SelectedValue); config.ShowService = MojoCube.Web.String.StringToBool(ddlService.SelectedValue); config.ArticleTitleLength = MojoCube.Web.String.ToInt(txtArticleTitleLength.Text.Trim()); config.Terms = txtTerms.Text.Trim(); config.Language = MojoCube.Api.UI.Language.GetLanguage(); config.InsertData(); } Response.Redirect("Config.aspx?info=1&active=" + Request.QueryString["active"]); }
//生成网站地图 protected void btnSiteMap_Click(object sender, EventArgs e) { string strLanguage = MojoCube.Api.UI.Language.GetLanguage(); MojoCube.Web.Site.Config config = new MojoCube.Web.Site.Config(); config.GetData(1, strLanguage); string domain = config.SiteUrl; #region 连接数据层 StringBuilder strSql = new StringBuilder(); //0:导航菜单 strSql.Append("select * from Site_Menu where Visible=1 and Language='" + strLanguage + "' order by SortID asc"); //1:文章类别 strSql.Append(" select * from Article_Category where Visible=1 and Language='" + strLanguage + "' order by SortID asc"); //2:文章列表 strSql.Append(" select * from Article_List where Issue=1 and Language='" + strLanguage + "' order by CreateDate desc"); //3:产品类别 strSql.Append(" select * from Product_Category where Visible=1 and Language='" + strLanguage + "' order by SortID asc"); //4:产品列表 strSql.Append(" select * from Product_List where Issue=1 and Language='" + strLanguage + "' order by CreateDate desc"); //5:相册类别 strSql.Append(" select * from Album_Category where Visible=1 and Language='" + strLanguage + "' order by SortID asc"); //6:相册列表 strSql.Append(" select * from Album_List where Issue=1 and Language='" + strLanguage + "' order by CreateDate desc"); DataSet ds = MojoCube.Web.Sql.SqlQueryDS(strSql.ToString()); #endregion DataTable dt = new DataTable(); DataTable dtSM = new DataTable(); dtSM.Columns.Add("loc"); dtSM.Columns.Add("lastmod"); dtSM.Columns.Add("changefreq"); dtSM.Columns.Add("priority"); #region 生成数据表 //导航菜单 dt = ds.Tables[0]; if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dtSM.NewRow(); dr["loc"] = domain + MojoCube.Web.Site.Cache.GetUrlExtension(dt.Rows[i]["Url"].ToString(), strLanguage); dr["lastmod"] = DateTime.Now; dr["changefreq"] = "daily"; dr["priority"] = "1.0"; dtSM.Rows.Add(dr); } } //文章类别 dt = ds.Tables[1]; if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dtSM.NewRow(); dr["loc"] = domain + MojoCube.Web.Site.Cache.GetUrlExtension("NC-" + dt.Rows[i]["PageName"].ToString(), strLanguage); dr["lastmod"] = DateTime.Now; dr["changefreq"] = "daily"; dr["priority"] = "1.0"; dtSM.Rows.Add(dr); } } //文章列表 dt = ds.Tables[2]; if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dtSM.NewRow(); dr["loc"] = domain + MojoCube.Web.Site.Cache.GetUrlExtension("N-" + dt.Rows[i]["PageName"].ToString(), strLanguage); dr["lastmod"] = DateTime.Now; dr["changefreq"] = "daily"; dr["priority"] = "1.0"; dtSM.Rows.Add(dr); } } //产品类别 dt = ds.Tables[3]; if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dtSM.NewRow(); dr["loc"] = domain + MojoCube.Web.Site.Cache.GetUrlExtension("PC-" + dt.Rows[i]["PageName"].ToString(), strLanguage); dr["lastmod"] = DateTime.Now; dr["changefreq"] = "daily"; dr["priority"] = "1.0"; dtSM.Rows.Add(dr); } } //产品列表 dt = ds.Tables[4]; if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dtSM.NewRow(); dr["loc"] = domain + MojoCube.Web.Site.Cache.GetUrlExtension("P-" + dt.Rows[i]["PageName"].ToString(), strLanguage); dr["lastmod"] = DateTime.Now; dr["changefreq"] = "daily"; dr["priority"] = "1.0"; dtSM.Rows.Add(dr); } } //相册类别 dt = ds.Tables[5]; if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dtSM.NewRow(); dr["loc"] = domain + MojoCube.Web.Site.Cache.GetUrlExtension("AC-" + dt.Rows[i]["PageName"].ToString(), strLanguage); dr["lastmod"] = DateTime.Now; dr["changefreq"] = "daily"; dr["priority"] = "1.0"; dtSM.Rows.Add(dr); } } //相册列表 dt = ds.Tables[6]; if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dtSM.NewRow(); dr["loc"] = domain + MojoCube.Web.Site.Cache.GetUrlExtension("A-" + dt.Rows[i]["PageName"].ToString(), strLanguage); dr["lastmod"] = DateTime.Now; dr["changefreq"] = "daily"; dr["priority"] = "1.0"; dtSM.Rows.Add(dr); } } #endregion //保存到根目录下 MojoCube.Api.XML.SiteMap map = new MojoCube.Api.XML.SiteMap(); string filePath = HttpContext.Current.Server.MapPath("~/sitemap.xml"); using (StreamWriter sw = new StreamWriter(filePath)) { sw.Write(map.CreateSiteMap(dtSM)); } Response.Redirect("Config.aspx?info=1&active=" + Request.QueryString["active"]); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Request.QueryString["info"] != null) { AlertDiv.InnerHtml = MojoCube.Web.String.ShowAlert("success", "数据保存成功"); } MojoCube.Web.Site.Config config = new MojoCube.Web.Site.Config(); config.GetData(1, MojoCube.Api.UI.Language.GetLanguage()); if (config.pk_Config > 0) { txtSiteName.Text = config.SiteName; txtSiteTitle.Text = config.SiteTitle; txtSEO_Title.Text = config.SiteTitle; txtSEO_Keyword.Text = config.SiteKeyword; txtSEO_Description.Text = config.SiteDescription; txtSiteUrl.Text = config.SiteUrl; txtContent.Text = config.SiteCopyRight; txtSiteContact.Text = config.SiteContact; txtDescription.Text = config.ContactUs; txtStatisticsCode.Text = config.StatisticsCode; txtShareCode.Text = config.ShareCode; txtNotify.Text = config.SiteNotify; txtClosedInfo.Text = config.ClosedInfo; txtBoundIP.Text = config.BoundIP; txtArticleTitleLength.Text = config.ArticleTitleLength.ToString(); txtTerms.Text = config.Terms; MojoCube.Web.Sql.ddlFindByValue(ddlStatus, MojoCube.Web.String.BoolToString(config.IsSiteOpen)); MojoCube.Web.Sql.ddlFindByValue(ddlCounter, MojoCube.Web.String.BoolToString(config.SiteCounter)); MojoCube.Web.Sql.ddlFindByValue(ddlBoundIP, MojoCube.Web.String.BoolToString(config.IsBoundIP)); MojoCube.Web.Sql.ddlFindByValue(ddlService, MojoCube.Web.String.BoolToString(config.ShowService)); MojoCube.Web.Sql.ddlFindByValue(ddlExtension, config.UrlExtension); MojoCube.Web.Sql.ddlFindByValue(ddlSearchType, config.SearchType.ToString()); //Logo if (config.SiteLogo != "") { imgLogo.ImageUrl = "~/Files.aspx?image=" + MojoCube.Api.Text.Security.EncryptString(config.SiteLogo) + "&w=400&h=300"; } else { imgLogo.Visible = false; } txtShowWM.Text = config.WM_Text; txtShowFS.Text = config.WM_Font + "|" + config.WM_FontSize.ToString(); txtPadding.Text = config.WM_Bottom.ToString() + "|" + config.WM_Right.ToString(); txtRGB.Text = config.WM_Red.ToString() + "|" + config.WM_Green.ToString() + "|" + config.WM_Blue.ToString(); txtShowWH.Text = config.WM_Show_W.ToString() + "|" + config.WM_Show_H.ToString(); MojoCube.Web.Sql.ddlFindByValue(ddlRotate, config.WM_Rotate.ToString()); MojoCube.Web.Sql.ddlFindByValue(ddlSize, config.WM_Size.ToString()); MojoCube.Web.Sql.ddlFindByValue(ddlAlpha, config.WM_Alpha.ToString()); MojoCube.Web.Sql.ddlFindByValue(ddlShowWM, MojoCube.Web.String.BoolToString(config.WM_IsShow)); MojoCube.Web.Sql.ddlFindByValue(ddlModeWM, MojoCube.Web.String.BoolToString(config.WM_Mode)); //水印图片 if (config.WM_ImagePath != "") { imgWM.ImageUrl = "~/Files.aspx?image=" + MojoCube.Api.Text.Security.EncryptString(config.WM_ImagePath) + "&w=400&h=300"; } else { imgWM.Visible = false; } } this.Title = "网站设置"; } }
private void GetFile() { try { if (Request.QueryString["image"] != null) { string sPath = MojoCube.Api.Text.Security.DecryptString(Request.QueryString["image"]); string path = ""; if (sPath.Length > 0) { if (sPath == "no_image.jpg") { path = Server.MapPath("~/Images/no_image.jpg"); } else { path = Server.MapPath("~/Files/" + sPath); } } else { path = Server.MapPath("~/Images/blank.png"); } ///////////////////////////////////////////////把图片文档缓存起来(开始)/////////////////////////////////////////////////////// //获取实体的日期和时间 DateTime input = System.IO.File.GetLastWriteTime(path); // 格式化日期时间,去掉毫秒和微秒: DateTime dt = new DateTime(input.Year, input.Month, input.Day, input.Hour, input.Minute, input.Second); // 获取浏览器发出的日期和时间 string s = Request.Headers["If-Modified-Since"]; // 判断是否修改过 DateTime TempDate; if (((s != null) && DateTime.TryParse(s, out TempDate)) && (TempDate >= dt)) { // 没有修改过,使用浏览器缓存 Response.StatusCode = 0x130; } // 修改过,在Http头增加浏览器缓存控制 else if (dt.ToUniversalTime() < DateTime.UtcNow) { HttpCachePolicy cache = Response.Cache; cache.SetCacheability(HttpCacheability.Public); cache.SetLastModified(dt); } ///////////////////////////////////////////////把图片文档缓存起来(结束)/////////////////////////////////////////////////////// byte[] bFile = null; System.Drawing.Image img = System.Drawing.Image.FromFile(path); int width = img.Width; int height = img.Height; //按比例缩图 if (Request.QueryString["w"] != null && Request.QueryString["h"] != null && sPath.Length > 0) { if (width > height && width > int.Parse(Request.QueryString["w"])) { width = int.Parse(Request.QueryString["w"]); height = img.Height * width / img.Width; } else if (height > width && height > int.Parse(Request.QueryString["h"])) { height = int.Parse(Request.QueryString["h"]); width = img.Width * height / img.Height; } else if (width == height) { height = int.Parse(Request.QueryString["h"]); width = img.Width * height / img.Height; } } System.Drawing.Image bitmap = null; //缩图并裁剪 if (Request.QueryString["cut"] != null) { System.IO.FileInfo myFile = new System.IO.FileInfo(path); byte[] bytelist = CutPhoto(myFile, Request.QueryString["cut"]); MemoryStream ms1 = new MemoryStream(bytelist); bitmap = (Bitmap)System.Drawing.Image.FromStream(ms1); ms1.Close(); } else { bitmap = new Bitmap(width, height); Graphics g = Graphics.FromImage(bitmap); g.CompositingQuality = CompositingQuality.HighQuality; g.SmoothingMode = SmoothingMode.HighQuality; g.InterpolationMode = InterpolationMode.HighQualityBicubic; g.DrawImage(img, new System.Drawing.Rectangle(0, 0, width, height)); } //是否显示水印 MojoCube.Web.Site.Config config = new MojoCube.Web.Site.Config(); config.GetData(1, MojoCube.Api.UI.Language.GetLanguage()); if (width == 582) { config.WM_IsShow = false; } if (config.WM_IsShow && width > config.WM_Show_W || config.WM_IsShow && height > config.WM_Show_H) { int WM_Bottom = config.WM_Bottom; int WM_Right = config.WM_Right; int WM_Alpha = config.WM_Alpha; int WM_Red = config.WM_Red; int WM_Green = config.WM_Green; int WM_Blue = config.WM_Blue; int WM_Rotate = config.WM_Rotate; int WM_Size = config.WM_Size; //文字模式 if (!config.WM_Mode) { string WM_Text = config.WM_Text; string WM_Font = config.WM_Font; int WM_FontSize = config.WM_FontSize; Graphics grPhoto = Graphics.FromImage(bitmap); //消除锯齿 grPhoto.SmoothingMode = SmoothingMode.AntiAlias; grPhoto.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; Font crFont = new Font(WM_Font, WM_FontSize, FontStyle.Bold); SizeF crSize = grPhoto.MeasureString(WM_Text, crFont); int iRotate = WM_Rotate; float pCenterX = 0; float pCenterY = 0; //设置字体在图片中的位置 float yPosFromBottom = 0; float xCenterOfImg = 0; switch (WM_Size) { case 0: //center yPosFromBottom = height / 2 - (crSize.Height / 2); pCenterX = xCenterOfImg = width / 2; pCenterY = height / 2; break; case 1: //top left pCenterY = yPosFromBottom = crSize.Height / 2 - WM_Bottom; pCenterX = xCenterOfImg = crSize.Width / 2 + WM_Right; break; case 2: //top right pCenterY = yPosFromBottom = crSize.Height / 2 - WM_Bottom; pCenterX = xCenterOfImg = width - crSize.Width / 2 - WM_Right; break; case 3: //bottom left pCenterY = yPosFromBottom = height - WM_Bottom - (crSize.Height); pCenterX = xCenterOfImg = crSize.Width / 2 + WM_Right; break; case 4: //bottom right pCenterY = yPosFromBottom = height - WM_Bottom - (crSize.Height); pCenterX = xCenterOfImg = width - WM_Right - (crSize.Width / 2); break; } //设置字体居中 StringFormat StrFormat = new StringFormat(); StrFormat.Alignment = StringAlignment.Center; //设置绘制文本的颜色和纹理 (Alpha=153) SolidBrush semiTransBrush2 = new SolidBrush(Color.FromArgb(WM_Alpha, WM_Red, WM_Green, WM_Blue)); //旋转水印 PointF pCenter = new PointF(pCenterX, pCenterY); grPhoto.TranslateTransform(pCenter.X, pCenter.Y); grPhoto.RotateTransform(iRotate); grPhoto.TranslateTransform(-pCenter.X, -pCenter.Y); //将版权信息绘制到图象上 grPhoto.DrawString(WM_Text, crFont, semiTransBrush2, new PointF(xCenterOfImg, yPosFromBottom), StrFormat); } //图片模式 else { int iMarkRightSpace = 0; int iMarkButtomSpace = 0; //创建一个需要填充水银的Image对象 System.Drawing.Image imgWatermark = new Bitmap(Server.MapPath("~/Files/" + config.WM_ImagePath)); int iMarkWidth = imgWatermark.Width; int iMarkmHeight = imgWatermark.Height; Graphics grWatermark = null; //将位图bmWatermark加载到Graphics对象 grWatermark = Graphics.FromImage(bitmap); ImageAttributes imageAttributes = new ImageAttributes(); ColorMap colorMap = new ColorMap(); colorMap.OldColor = Color.FromArgb(255, 0, 255, 0); colorMap.NewColor = Color.FromArgb(0, 0, 0, 0); ColorMap[] remapTable = { colorMap }; imageAttributes.SetRemapTable(remapTable, ColorAdjustType.Bitmap); float[][] colorMatrixElements = { new float[] { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f }, new float[] { 0.0f, 1.0f, 0.0f, 0.0f, 0.0f }, new float[] { 0.0f, 0.0f, 1.0f, 0.0f, 0.0f }, new float[] { 0.0f, 0.0f, 0.0f, (float)((WM_Alpha / 50) * 20) / 100f, 0.0f }, //设置透明度 new float[] { 0.0f, 0.0f, 0.0f, 0.0f, 1.0f } }; ColorMatrix wmColorMatrix = new ColorMatrix(colorMatrixElements); imageAttributes.SetColorMatrix(wmColorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); iMarkRightSpace = width - iMarkWidth - WM_Right; iMarkButtomSpace = height - iMarkmHeight - WM_Bottom; grWatermark.DrawImage(imgWatermark, new Rectangle(iMarkRightSpace, iMarkButtomSpace, iMarkWidth, iMarkmHeight), 0, 0, iMarkWidth, iMarkmHeight, GraphicsUnit.Pixel, imageAttributes); } } MemoryStream stream = new MemoryStream(); string fileType = MojoCube.Api.File.Function.GetContentType(sPath); if (fileType == "image/png") { bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png); } else { ImageCodecInfo[] info = ImageCodecInfo.GetImageEncoders(); EncoderParameters ep = new EncoderParameters(1); ep.Param[0] = new EncoderParameter(Encoder.Quality, (long)100); bitmap.Save(stream, info[1], ep); } bFile = stream.ToArray(); Response.Clear(); Response.ContentType = fileType; string fileName = Server.HtmlEncode(sPath.Substring(sPath.LastIndexOf('/') + 1)); Response.AddHeader("Content-Disposition", "inline;filename=\"" + fileName + "\""); Response.Charset = ""; Response.ContentEncoding = System.Text.Encoding.Unicode; Response.AddHeader("Connection", "close"); Response.BinaryWrite(bFile); //Response.Clear(); bitmap.Dispose(); stream.Dispose(); img.Dispose(); } else if (Request.QueryString["file"] != null) { string sPath = MojoCube.Api.Text.Security.DecryptString(Request.QueryString["file"]); byte[] bFile = null; System.IO.FileInfo File = new System.IO.FileInfo(Server.MapPath("~/Files/" + sPath)); System.IO.FileStream FS = File.OpenRead(); System.IO.BinaryReader BR = new System.IO.BinaryReader(FS); bFile = BR.ReadBytes((int)FS.Length); FS.Dispose(); BR.Close(); Response.Clear(); Response.ContentType = MojoCube.Api.File.Function.GetContentType(sPath); string fileName = Server.HtmlEncode(sPath.Substring(sPath.LastIndexOf('/') + 1)); Response.AddHeader("Content-Disposition", "inline;filename=\"" + fileName + "\""); Response.Charset = ""; Response.ContentEncoding = System.Text.Encoding.Unicode; Response.AddHeader("Connection", "close"); Response.BinaryWrite(bFile); } } catch { Response.Write("Error!"); } }