zoukankan      html  css  js  c++  java
  • DevExpress.chartContro控件保存图片和打印图片

            private void pictureBox1_Click(object sender, EventArgs e)
            {
                ////实例化打印对象
                PrintDocument print = new PrintDocument();
                //打印事件
                print.PrintPage += new PrintPageEventHandler(print_PrintPage);
                //开始打印
                PrintDialog pd = new PrintDialog();
                if (pd.ShowDialog() == DialogResult.OK)
                {
                    //print.PrinterSettings.DefaultPageSettings.Landscape = true;
                    print.Print();
                }
                //打印之后删除保存在本地的图片
                 print.EndPrint += new PrintEventHandler(print_EndPrint);             
            }
    
            /// <summary>
            ///  LabHemodialysis产生的图保存的本地,并且获取
            /// </summary>
            /// <returns></returns>
            private Image get_Image() {
                Bitmap bmp;
                if (str_ItemName.Contains("/"))
                {
                    string str_ItemNameRelapce = str_ItemName.Replace("/", "");
                    LabHemodialysis.ExportToImage(@"C:" + str_ItemNameRelapce + ".Jpeg", System.Drawing.Imaging.ImageFormat.Jpeg);
                    bmp = new Bitmap(@"C:" + str_ItemNameRelapce + ".Jpeg");
                }
                else {
                    //保存到c盘        
                    LabHemodialysis.ExportToImage(@"C:" + str_ItemName + ".Jpeg", System.Drawing.Imaging.ImageFormat.Jpeg);
                    //从c盘获取图片
                    bmp = new Bitmap(@"C:" + str_ItemName + ".Jpeg");
                }
               return bmp;
            }
            //删除本地保存的图片
            private void delete_Image()
            {
                System.IO.FileInfo file = new System.IO.FileInfo(@"C:" + str_ItemName + ".Jpeg");
                if (file.Exists)
                {
                    file.Delete();
                }  
            }
            private void print_EndPrint(object sender, PrintEventArgs e)
            {
                delete_Image();
            }
           private void print_PrintPage(object sender, PrintPageEventArgs e)
            {
    
                Image img = get_Image();
                Image rotataImage = Rotate((Bitmap)img, 90);
                e.Graphics.DrawImage(rotataImage,0,0); 
    
            }
           /// <summary>
           /// 以逆时针为方向对图像进行旋转
           /// </summary>
           /// <param name="b">位图流</param>
           /// <param name="angle">旋转角度[0,360](前台给的)</param>
           /// <returns></returns>
           private Bitmap Rotate(Bitmap b, int angle)
           {
               angle = angle % 360;
               //弧度转换
               double radian = angle * Math.PI / 180.0;
               double cos = Math.Cos(radian);
               double sin = Math.Sin(radian);
               //原图的宽和高
               int w = b.Width;
               int h = b.Height;
               int W = (int)(Math.Max(Math.Abs(w * cos - h * sin), Math.Abs(w * cos + h * sin)));
               int H = (int)(Math.Max(Math.Abs(w * sin - h * cos), Math.Abs(w * sin + h * cos)));
               //目标位图
               Bitmap dsImage = new Bitmap(W, H);
               System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(dsImage);
               g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Bilinear;
               g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
               //计算偏移量
               Point Offset = new Point((W - w) / 2, (H - h) / 2);
               //构造图像显示区域:让图像的中心与窗口的中心点一致
               Rectangle rect = new Rectangle(Offset.X, Offset.Y, w, h);
               Point center = new Point(rect.X + rect.Width / 2, rect.Y + rect.Height / 2);
               g.TranslateTransform(center.X, center.Y);
               g.RotateTransform(360 - angle);
               //恢复图像在水平和垂直方向的平移
               g.TranslateTransform(-center.X, -center.Y);
               g.DrawImage(b, rect);
               //重至绘图的所有变换
               g.ResetTransform();
               g.Save();
               g.Dispose();
               //dsImage.Save("yuancd.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
               return dsImage;
           }
         
            private string printName;//打印的名称
            private void boxSava_Click(object sender, EventArgs e)
            {
                SaveFileDialog sf = new SaveFileDialog();
                sf.Filter = "Image files(*.jpeg,*.gif)|*.jpeg;*.gif";
                sf.Title = "趋势图导出";
                sf.FileName = str_ItemName+"("+DateTime.Now+")"+"趋势图";
                printName = sf.FileName;
                if (sf.ShowDialog() == DialogResult.OK)
                {
                   
                    LabHemodialysis.ExportToImage(sf.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
                }
            }
  • 相关阅读:
    AIMS 2013中的性能报告工具不能运行的解决办法
    读懂AIMS 2013中的性能分析报告
    在线研讨会网络视频讲座 方案设计利器Autodesk Infrastructure Modeler 2013
    Using New Profiling API to Analyze Performance of AIMS 2013
    Map 3D 2013 新功能和新API WebCast视频下载
    为Autodesk Infrastructure Map Server(AIMS) Mobile Viewer创建自定义控件
    ADN新开了云计算Cloud和移动计算Mobile相关技术的博客
    JavaScript修改css样式style
    文本编辑神器awk
    jquery 开发总结1
  • 原文地址:https://www.cnblogs.com/WangJunZzz/p/5612247.html
Copyright © 2011-2022 走看看