Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        /// <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();
        }
Exemple #4
0
        /// <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();
        }