/// <summary> /// 2014-04-29 增加红蓝3D效果 /// </summary> /// <param name="img_path"></param> /// <param name="b"></param> /// <param name="img_format"></param> /// <param name="quality_num"></param> public static void SaveImage(string img_path, Bitmap b, System.Drawing.Imaging.ImageFormat img_format, int quality_num) { ImageCodecInfo myImageCodecInfo = ZImage.GetEncoder(img_format); System.Drawing.Imaging.Encoder myEncoder; EncoderParameter myEncoderParameter; EncoderParameters myEncoderParameters; myEncoder = System.Drawing.Imaging.Encoder.Quality; myEncoderParameters = new EncoderParameters(1); myEncoderParameter = new EncoderParameter(myEncoder, (long)quality_num);//quality_num + "L"); // 0-100 myEncoderParameters.Param[0] = myEncoderParameter; b.Save(img_path, myImageCodecInfo, myEncoderParameters); }
/// <summary> /// 获取背景颜色图片所有路径,渲染专用,请勿改动 /// </summary> /// <param name="colorCode"></param> /// <param name="width"></param> /// <param name="height"></param> /// <returns></returns> public static string GetBackgroundColorImage(string colorCode, int width, int height) { string directoryPath = UploadHelper.Combine(ConfigHelper.SharePath, "Lib", "Background", colorCode); if (!Directory.Exists(directoryPath)) { Directory.CreateDirectory(directoryPath); } string filePath = Combine(directoryPath, width + "_" + height + ".png"); if (!File.Exists(filePath)) //如果这个背景文件还没有,则生成之 { Bitmap b = ZImage.DrawBackgroundImg(1, 1, ZImage.Hex2Color(colorCode), 0.7); b.Save(filePath, ImageFormat.Png); } return(filePath); }
/// <summary> /// 转换一下图片格式 /// </summary> /// <param name="orig_img_path"></param> /// <param name="dest_img_path"></param> /// <param name="src_fmt"></param> /// <param name="dest_fmt"></param> public static void ConvertImage(string orig_img_path, string dest_img_path, ImageFormat dest_fmt, int quality_num) { Bitmap b_orig = new Bitmap(orig_img_path); ImageCodecInfo myImageCodecInfo = ZImage.GetEncoder(dest_fmt); System.Drawing.Imaging.Encoder myEncoder; EncoderParameter myEncoderParameter; EncoderParameters myEncoderParameters; myEncoder = System.Drawing.Imaging.Encoder.Quality; myEncoderParameters = new EncoderParameters(1); myEncoderParameter = new EncoderParameter(myEncoder, (long)quality_num); // 0-100 myEncoderParameters.Param[0] = myEncoderParameter; b_orig.Save(dest_img_path, myImageCodecInfo, myEncoderParameters); b_orig.Dispose(); }
/// <summary> /// 输出一个图片到输出流 /// </summary> /// <param name="Response"></param> /// <param name="b"></param> /// <param name="img_format"></param> public static void OutPutImage(System.Web.HttpResponse Response, Bitmap b, System.Drawing.Imaging.ImageFormat img_format, TimeSpan?freshness, int quality_num) { Response.Clear(); Response.BufferOutput = false; //提高效率 if (freshness.HasValue) //要缓冲 { DateTime now = DateTime.Now; Response.Cache.SetExpires(now.Add((TimeSpan)freshness)); Response.Cache.SetMaxAge((TimeSpan)freshness); Response.Cache.SetCacheability(HttpCacheability.Public); Response.Cache.SetValidUntilExpires(true); } else { Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1)); //特别注意 Response.Cache.SetCacheability(HttpCacheability.NoCache); //特别注意 Response.AppendHeader(" Pragma", "No-Cache"); //特别注意 } ImageCodecInfo myImageCodecInfo = ZImage.GetEncoder(img_format); System.Drawing.Imaging.Encoder myEncoder; EncoderParameter myEncoderParameter; EncoderParameters myEncoderParameters; myEncoder = System.Drawing.Imaging.Encoder.Quality; myEncoderParameters = new EncoderParameters(1); myEncoderParameter = new EncoderParameter(myEncoder, (long)quality_num);//quality_num + "L"); // 0-100 myEncoderParameters.Param[0] = myEncoderParameter; Response.ContentType = GetContentTypeFromImageFormat(img_format); b.Save(Response.OutputStream, myImageCodecInfo, myEncoderParameters); HttpContext.Current.ApplicationInstance.CompleteRequest(); }