/// <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()); } }
public void Export(ExportDefinition definition) { ExportDefinitionEventArgs eventArgs = new ExportDefinitionEventArgs() { Asset = this, Definition = definition }; ExportEventHandler?.Invoke(this, eventArgs); }