PictureForm.cs

简介:
using  System;
using  System.Collections.Generic;
using  System.ComponentModel;
using  System.Data;
using  System.Drawing;
using  System.Text;
using  System.Windows.Forms;
using  System.IO;
using  System.Drawing.Imaging;
using  Packet;
 
namespace  TSProducer
{
     public  partial  class  PictureForm : Form
     {
         private  string  gPicFilePath;             //全局变量,图片文件路径
 
         public  string  strPNG = "" ;
 
         public  string  FromPngValue
         {
             get
             {
                 return  this .textBoxPicture.Text;
             }
             set
             {
                 this .textBoxPicture.Text = value;
             }
         }
 
         public  event  EventHandler accept;
 
         public  PictureForm()
         {
             InitializeComponent();
         }
         public  PictureForm( string  filePath)
         {
             InitializeComponent();
             gPicFilePath = filePath;
             showPic();
             showPicContent();
             setFormTitle();
         }
 
         public  void  showPic()
         {
             Image img = Image.FromFile(gPicFilePath);
             pictureBox1.Image = img;
         }
 
         public  void  showPicContent()
         {
             try
             {
                 byte [] pngBytes = ImgToBytes(gPicFilePath);
                 strPNG = Convert.ToBase64String(pngBytes);
                 textBoxPicture.Text = strPNG;
 
                 /*************************************以十六进制显示图片内容**********************************************/
                 //FileStream fs = new FileStream(gPicFilePath, FileMode.Open, FileAccess.Read);
                 //BinaryReader br = new BinaryReader(fs);
 
                 //string str = "\r\t\r\t";
                 //for (uint i = 0x0; i <= 0xf; i++)
                 //{
 
                 //    str += i.ToString("x") + "\r\t";
                 //}
                 //str += "\r\n";
 
                 //UInt64 memRowIndex = 00000000; //用来标示行号
                 //str += memRowIndex.ToString("X08") + "h:\r\t";
 
                 //int count = 0;
                 //int length = (int)fs.Length;
 
                 //while (length > 0)
                 //{
                 //    count++;
                 //    byte tempByte = br.ReadByte();
                 //    string tempStr = tempByte.ToString("X02");
 
                 //    str += tempStr.ToUpper() + "\r\t";
                 //    length--;
 
                 //    if (count == 16)
                 //    {
                 //        memRowIndex += 0xf;
                 //        str += "\r\n" + memRowIndex.ToString("X08") + "h:\r\t";   //每行的行头标识
                 //        count = 0;
 
                 //    }
                 //}
                 //textBoxPicture.Text = str;
                 //br.Close();
                 //fs.Close();
                 /***********************************************************************************/
             }
             catch  (IOException ex)
             {
                 throw  ex;
             }
         }
         /// <summary>
         /// 设置文件标题
         /// </summary>
         protected  void  setFormTitle()
         {
             FileInfo fileinfo = new  FileInfo(gPicFilePath);
             this .Text = fileinfo.Name + " - Picture" ;
         }
         
         protected  static  byte [] ImgToBytes( string  gPicFilePath)
         {
             MemoryStream ms = null ;
             try
             {
                 ms = new  MemoryStream();
                 Bitmap bmap = new  Bitmap(gPicFilePath);
                 bmap.Save(ms, ImageFormat.Png);
                 ms.Flush();
                 byte [] pngBytes = ms.ToArray();
                 return  pngBytes;
             }
             catch  (ArgumentNullException ex)
             {
                 throw  ex;
             }
             finally
             {
                 ms.Close();
             }
         }
 
         public  string  getPngStr()
         {
             try
             {
                 byte [] pngBytes = ImgToBytes(gPicFilePath);
                 strPNG = Convert.ToBase64String(pngBytes);
                 return  strPNG;
             }
             catch  (IOException ex)
             {
                 throw  ex;
             }
         }
 
         /// <summary>
         /// 插入图片的信息到主窗体
         /// </summary>
         /// <param name="sender"></param>
         /// <param name="e"></param>
         private  void  OnClickInsertPicBits( object  sender, EventArgs e)
         {
             if  (accept != null )
             {
                 accept( this , EventArgs.Empty);
             }
         }
 
         private  void  OnClickOpenPic( object  sender, EventArgs e)
         {
             if  (openPicFileDlg.ShowDialog() == DialogResult.OK)
             {
                 gPicFilePath = openPicFileDlg.FileName;
                 showPic();
                 showPicContent();
                 setFormTitle();
             }
         }
         /// <summary>
         /// 测试读取保存在package中的图片
         /// </summary>
         /// <param name="sender"></param>
         /// <param name="e"></param>
         private  void  OnClickTest( object  sender, EventArgs e)
         {
             if  (openPicFileDlg.ShowDialog() == DialogResult.OK)
             {
                 try
                 {
                     gPicFilePath = openPicFileDlg.FileName;
                     FileStream fs = new  FileStream(gPicFilePath, FileMode.Open, FileAccess.Read);
                     BinaryReader br = new  BinaryReader(fs);
                     string  str = br.ReadString();
                     //str = str.Replace(CDT.CDTTableStr, "");
                     byte [] pngBytes = Convert.FromBase64String(str);
                     MemoryStream ImageMS = new  MemoryStream();
                     ImageMS.Write(pngBytes, 0, pngBytes.Length);
                     Bitmap resultBitmap = new  Bitmap(ImageMS);
                     pictureBox1.Image = resultBitmap;
                     textBoxPicture.Text = str;
                 }
                 catch  (IOException ex)
                 {
                     throw  ex;
                 }
             }
         }
     }
}                                                                                                                本文转自静默虚空博客园博客,原文链接:http://www.cnblogs.com/jingmoxukong/archive/2011/07/29/2120872.html,如需转载请自行联系原作者
相关文章
|
9月前
|
C# C++ Windows
From.Designer.cs和From.cs的关系
From.Designer.cs和From.cs的关系
|
10月前
|
中间件 C# C++
[CS]C#操作word
[CS]C#操作word
70 0
|
11月前
|
存储 编解码 数据可视化
开发pacs系统主要解决的问题有哪些?
从计算机技术角度,图像后处理功能的开发和应用影像到整个影像诊断过程。常规的影像处理是必须的,如反相、翻转、调窗、漫游、缩放、旋转、影像冻结、数字减影、标注、划线、距离及角度测量、面积测量、伪彩色等。专业的脱机测量(OFF-LINE)工具也是必要的,如在超声诊断中,提供医生超声设备的所有测量工具,并提供一些超声影像的研究方法等。三维重建技术的使用更利于临床诊断,三维重建方法有Marching Cubes、最大强度投影(MIP)、基于表面的三维显示、基于体绘制的三维显示、内表面绘制的虚拟内窥镜等方法,这些方法在医学影像领域有着广泛的应用前景。
开发pacs系统主要解决的问题有哪些?
|
安全 Java Linux
20 CS自解压木马配置详解CS
cobaltstrike的安装与基础使用 Cobalt Strike(简称CS)是一款团队作战渗透测试神器,分为客户端及服务端,一个服务端可以对应多个客户端,一个客户端可以连接多个服备端。 CS主要是用来后期持久渗透、横向移动、流量隐藏、数据窃取的工具。当已经在目标机器上执行了CS的 payload,它会创建一个Beacon(远控木马功能)回连到C2服务器。
20 CS自解压木马配置详解CS
|
机器学习/深度学习 人工智能 算法
最近发现的几个神奇CS学习网站
自己也是打算学习各种国外的优质课程(最近在学CS224n课程和做对应的project),感觉就可以参考这个北大信科大佬的路线,举例,CS61A课程,
323 0
最近发现的几个神奇CS学习网站