예제 #1
0
 /// <summary>
 /// 图片加密
 /// </summary>
 /// <param name="filePath">源文件</param>
 /// <param name="savePath">保存为文件名称</param>
 public void Encrypt(object obj)
 {
     try
     {
         //Bitmap bitmap = new Bitmap(filePath);
         //Bitmap newImg = bitmap.Clone(new Rectangle(0, 0, bitmap.Width, bitmap.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb);
         //byte[] bytelist = (byte[])obj;
         //MemoryStream ms1 = new MemoryStream(bytelist);
         //Bitmap bitmap = (Bitmap)Image.FromStream(ms1);
         //ms1.Close();
         Model.Instance.Bitmap = null;
         Bitmap bitmap         = new Bitmap((Bitmap)obj);
         int    Width          = bitmap.Width;
         int    Height         = bitmap.Height;
         int    expectedCouont = Width * Height;
         Bitmap newImg         = new Bitmap(Width, Height);
         //加密
         Stopwatch watch = new Stopwatch();
         watch.Start();
         int[] list = GetRandomIntValues(expectedCouont);
         watch.Stop();
         Console.WriteLine(watch.Elapsed.TotalSeconds);      //记录时间
         int num = -1;
         for (int i = 0; i < list.Length; i++)
         {
             newImg.SetPixel((i % Width), (i / Width), bitmap.GetPixel((list[i] % Width), (list[i] / Width)));
             var process = i * 100 / expectedCouont;
             if (process > num)
             {
                 num = process;
                 ExportEventHander?.Invoke(num, new EventArgs());
             }
         }
         //MessageBox.Show("加密完成");
         Model.Instance.Bitmap = newImg;
         EndEventHander?.Invoke(true, new EventArgs());
         //newImg.MakeTransparent(Color.White);
         //newImg.Save(savePath);
         //return newImg;
     }
     catch (Exception ex)
     {
         MessageBox.Show("加密失败:" + ex.Message);
         EndEventHander?.Invoke(false, new EventArgs());
     }
 }
예제 #2
0
        public void Export(ExportDefinition definition)
        {
            ExportDefinitionEventArgs eventArgs = new ExportDefinitionEventArgs()
            {
                Asset      = this,
                Definition = definition
            };

            ExportEventHandler?.Invoke(this, eventArgs);
        }