예제 #1
0
        /// <summary>
        /// 打开图片
        /// </summary>
        /// <param name="datas"></param>
        /// <param name="mode">1: 数据流 2:本地文件 3:拍照文件 4: 截屏文件</param>
        public Form3(string datas, int mode, int firsttime)
        {
            InitializeComponent();
            this.mode = mode;
            //this.pictureBox1.Size = new System.Drawing.Size(screenWidth, screenHeight);
            this.WindowState = FormWindowState.Maximized;

            this.TopMost = true;
#if DEBUG
            this.TopMost = false;//Form3 ShowView
#endif
            this.pictureBox1.Visible = false;
            this.pictureBox1.Visible = true;
            try
            {
                Bitmap bmp = null;
                if (mode == 1)
                {
                    m_base64 = datas;
                    m_bmp    = Base64StringToImage(datas);
                }
                else if (mode == 2)
                {
                    filepath = datas;

                    string filetype = Path.GetExtension(filepath).ToLower();
                    if (filetype == ".png")
                    {
                        string filepath2 = Path.GetDirectoryName(filepath) + "\\" + Path.GetFileNameWithoutExtension(filepath) + ".jpg";
                        try
                        {
                            File.Delete(filepath2);
                            System.Drawing.Bitmap b = (Bitmap)Image.FromFile(filepath);
                            b.Save(filepath2, System.Drawing.Imaging.ImageFormat.Jpeg);
                        }
                        catch (Exception e)
                        {
                            Log.Error(e.Message);
                        }

                        filepath = filepath2;
                    }

                    Log.Info("showPicture2 :" + filepath);
                    m_base64 = Util.ImgToBase64String(filepath);

                    m_bmp = (Bitmap)Image.FromFile(filepath);

                    imgHeight = m_bmp.Height;
                    imgWidth  = m_bmp.Width;
                    Log.Info("imgHeight=" + imgHeight + " imgWidth=" + imgWidth);
                    Log.Info("screenHeight=" + screenHeight + " screenWidth=" + screenWidth);
                    //m_bmp = new Bitmap(m_bmp, screenWidth, screenHeight);//不能图片缩放,因为破坏了图片的质量
                }
                else if (mode == 3)
                {
                    filepath = Application.StartupPath + "\\" + datas;

                    string filetype = Path.GetExtension(filepath).ToLower();
                    if (filetype == ".png")
                    {
                        string filepath2        = Path.GetDirectoryName(filepath) + "\\" + Path.GetFileNameWithoutExtension(filepath) + ".jpg";
                        System.Drawing.Bitmap b = (Bitmap)Image.FromFile(filepath);
                        b.Save(filepath2, System.Drawing.Imaging.ImageFormat.Jpeg);
                        filepath = filepath2;
                    }

                    Log.Info("showPicture3 :" + filepath);
                    m_base64 = Util.ImgToBase64String(filepath);
                    m_bmp    = (Bitmap)Image.FromFile(filepath);
                }
                else if (mode == 4)
                {
                    m_bmp    = ScreenCapture.captureScreen(0, 0);
                    m_base64 = Util.ImgToBase64String(m_bmp);
                }

                imgHeight = m_bmp.Height;
                imgWidth  = m_bmp.Width;

                Log.Info("imgHeight=" + imgHeight + " imgWidth=" + imgWidth);
                Log.Info("screenHeight=" + screenHeight + " screenWidth=" + screenWidth);

                //m_bmp = new Bitmap(m_bmp, screenWidth, screenHeight);//不能图片缩放,因为破坏了图片的质量
                this.pictureBox1.Image = m_bmp;

                this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
                this.pictureBox1.Width    = screenWidth;
                this.pictureBox1.Height   = screenHeight;

                //doUpload
                if (mode == 1 && firsttime == 1)
                {
                    string imgName = DateTime.Now.ToString("yyyyMMdd") + "-" + Global.getSchoolID() + "-" + Global.getClassID() + "-" + DateTime.Now.ToString("HHmmss") + ".jpg";
                    string imgDir  = Application.StartupPath + "\\" + DateTime.Now.ToString("yyyyMMdd");
                    if (!Directory.Exists(imgDir))
                    {
                        Directory.CreateDirectory(imgDir);
                    }

                    string imgPath = imgDir + "\\" + imgName;
                    m_bmp.Save(imgPath);
                    Common.uploadPicture(imgPath);
                    Common.uploadCameraEvent(imgName);//相机拍照
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
            }



            ////(图片宽>屏幕宽 && 图片高>屏幕高)
            //if ((pictureBox1.Width > Screen.PrimaryScreen.WorkingArea.Width && pictureBox1.Height > Screen.PrimaryScreen.WorkingArea.Height) ||
            //    (pictureBox1.Width > Screen.PrimaryScreen.WorkingArea.Width && pictureBox1.Height < Screen.PrimaryScreen.WorkingArea.Height))
            //{
            //    MakeThumbnail(pictureBox1.Width, pictureBox1.Height, "W");
            //}
            ////(图片宽<屏幕宽 && 图片高>屏幕高) 高度压缩
            //else if (pictureBox1.Width < Screen.PrimaryScreen.WorkingArea.Width && pictureBox1.Height > Screen.PrimaryScreen.WorkingArea.Height)
            //{
            //    MakeThumbnail(pictureBox1.Width, pictureBox1.Height, "H");
            //}
            //else
            //{
            //    pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
            //    this.pictureBox1.Left = Screen.PrimaryScreen.WorkingArea.Width / 2 - pictureBox1.Width / 2;
            //    this.pictureBox1.Top = Screen.PrimaryScreen.WorkingArea.Height / 2 - pictureBox1.Height / 2;
            //}
        }
예제 #2
0
        public FormPPTXiTi(string numberstr, int m)
        {
            mode       = m;
            al         = new ArrayList();
            alText     = new ArrayList();
            clickstate = new ArrayList();

            //创建习题ID
            _xitiId = Global.getSchoolID() + "-" + Global.getClassID() + "-" + DateTime.Now.ToString("yyyyMMddHHmmss");

            //TODO: 截屏上传
            if (m == 1)
            {
                _xitiId = "T_" + _xitiId;
                Image  img     = ScreenCapture.captureScreen(0, 0);
                string imgName = _xitiId + ".jpg";
                string imgDir  = Application.StartupPath + "\\" + DateTime.Now.ToString("yyyyMMdd");
                if (!Directory.Exists(imgDir))
                {
                    Directory.CreateDirectory(imgDir);
                }

                string imgPath = imgDir + "\\" + imgName;
                img.Save(imgPath);
                Common.uploadPicture(imgPath);
            }

            InitializeComponent();
            int panelH = SetPanel(numberstr);

            this.Text = "抢答";

            if (mode == 1)//PPT 抢答
            {
                this.Height = panelH;
                this.Width  = screenWidth;

                StartPosition = FormStartPosition.Manual;
                SetDesktopLocation(0, screenHeight - this.Height);

                label1.Visible  = false;
                label3.Visible  = false;
                lbltime.Visible = false;
            }
            else if (mode == 0)
            {
                this.WindowState    = FormWindowState.Maximized;
                pictureBox1.Visible = true;

                //--------
                int posY_timer = (screenHeight - lbltime.Height) / 2;//居中
                label1.Location  = new Point((screenWidth - label1.Width) / 2, posY_timer - lbltime.Height);
                lbltime.Location = new Point((screenWidth - lbltime.Width) / 2, posY_timer);
                label3.Location  = new Point((screenWidth + lbltime.Width + label3.Width) / 2, posY_timer + lbltime.Height - label3.Height);

                //todo
                tlbl           = new System.Timers.Timer(1000);
                tlbl.Elapsed  += new System.Timers.ElapsedEventHandler(lblstart);
                tlbl.Enabled   = true;
                tlbl.AutoReset = true;
            }

            this.TopMost = true;
#if DEBUG
            this.TopMost = false;//PPTXiti,zzz
#endif

            //this.WindowState = FormWindowState.Maximized;
            this.Hide();
            this.Show();
            this.BringToFront();

            t           = new System.Timers.Timer(200);
            t.Elapsed  += new System.Timers.ElapsedEventHandler(Theout);
            t.Enabled   = true;
            t.AutoReset = true;

            pictureBox2.Visible = false;
            pictureBox3.Visible = false;
            pictureBox4.Visible = false;
            //pictureBox3.Location = new System.Drawing.Point(screenWidth - 60, 0);
            //pictureBox4.Location = new System.Drawing.Point(screenWidth - 30, 0);
        }