private void OnMerging(Object sender, MergeEventArgs e) { _log.InfoFormat("Merging items --> Source: '{0}', Target: '{1}'", e.SourceServerItem, e.TargetServerItem); _log.InfoFormat("Merging items --> IsConflict: {0}, IsLatest: {1}, ", e.IsConflict, e.IsLatest); _log.InfoFormat("Merging items --> Status: {0}, Resolution: {1}, ", e.Status, e.Resolution); _log.InfoFormat(string.Empty); }
private void MergeStart(object sender, MergeEventArgs e) { mergerButton.Enabled = false; sortButton.Enabled = false; prograss.Show(); prograss.Value = 0; prograss.Maximum = e.Count; }
private void MergeCompleted(object sender, MergeEventArgs e) { Program.Controller.Do("replaceImg", Album, e.Album); MergeButton.Enabled = true; sortButton.Enabled = true; prograss.Visible = false; DialogResult = DialogResult.OK; }
public void OnMergeStateChange(MergeEventArgs e) { EventHandler <MergeEventArgs> handler = MergeStateChange; if (handler != null) { handler(this, e); } }
private void MergeCompleted(object sender, MergeEventArgs e) { Connector.Do("replaceImg", Album, e.Album); mergerButton.Enabled = true; sortButton.Enabled = true; prograss.Visible = false; if (completedHideCheck.Checked) { DialogResult = DialogResult.OK; } }
public void DoMerge(string[] arrFileNames, string saveFile) { MergeEventArgs arg = new MergeEventArgs(); //以合并后的文件名称和打开方式来创建、初始化FileStream文件流 FileStream addStream = new FileStream(saveFile, FileMode.Create); //以FileStream文件流来初始化BinaryWriter书写器,此用以合并分割的文件 long size = 0; using (BinaryWriter addWriter = new BinaryWriter(addStream)) { foreach (string file in arrFileNames) { FileInfo info = new FileInfo(file); size += info.Length; } for (int index = 0; index < arrFileNames.Length; index++) { string file = arrFileNames[index]; // ReSharper disable AssignNullToNotNullAttribute file = Path.Combine(Path.GetDirectoryName(file), String.Concat(Path.GetFileNameWithoutExtension(file), ".fsp", index + 1)); // ReSharper restore AssignNullToNotNullAttribute //以小文件所对应的文件名称和打开模式来初始化FileStream文件流,起读取分割作用 FileStream tempStream = new FileStream(file, FileMode.Open); //用FileStream文件流来初始化BinaryReader文件阅读器,也起读取分割文件作用 BinaryReader tempReader = new BinaryReader(tempStream); int readLength = (int)(tempStream.Length > _maxReadSize ? _maxReadSize : tempStream.Length); int readCount = (int)(tempStream.Length > _maxReadSize && tempStream.Length % _maxReadSize != 0 ? (tempStream.Length / _maxReadSize) + 1 : tempStream.Length / _maxReadSize); readCount = tempStream.Length > _maxReadSize ? readCount : 1; for (int i = 0; i < readCount; i++) { //读取分割文件中的数据,并生成合并后文件 addWriter.Write(tempReader.ReadBytes(readLength)); arg.FileName = file; arg.Percent = (int)(((double)addStream.Length / size) * 100); arg.Length = tempStream.Length; OnMergeStateChange(arg); } //关闭BinaryReader文件阅读器 tempReader.Close(); //关闭FileStream文件流 tempStream.Close(); } //关闭BinaryWriter文件书写器 addWriter.Close(); } //关闭FileStream文件流 addStream.Close(); }
} // OnBeforeMerge private void OnAfterMerge(object sender, MergeEventArgs e) { AfterMerge?.Invoke(sender, e); } // OnAfterMerge
} // OnAfterDownload private void OnBeforeMerge(object sender, MergeEventArgs e) { BeforeMerge?.Invoke(sender, e); } // OnBeforeMerge
public void OnMergeCompleted(MergeEventArgs e) { MergeCompleted?.Invoke(this, e); }
private void OnMergeProcessing(MergeEventArgs e) => MergeProcessing?.Invoke(this, e);
private void OnMergeStarted(MergeEventArgs e) => MergeStarted?.Invoke(this, e);
/// <summary> /// 执行拼合 /// </summary> public void RunMerge() { var e = new MergeEventArgs(); var Array = Queues.ToArray().Reverse();//序列反转 int count = 0; var version = Img_Version.Ver2; foreach (Album al in Array) { if (al.List.Count > count) //获得最大帧数 { count = al.List.Count; } if (al.Version > version) //获得最高文件版本 { version = al.Version; } } var Album = new Album { Version = version }; Album.InitHandle(null); Album.Tables = new List <List <Color> >(); e.Count = count; e.Album = Album; OnMergeStarted(e);//启动拼合事件 var entitys = new List <Sprite>(); for (var i = 0; i < count; i++) { var entity = new Sprite(Album); var width = 1; var height = 1; var max_width = 0; var max_height = 0; var x = 800; var y = 600; var type = ColorBits.ARGB_1555; foreach (var al in Array) { if (i < al.List.Count) { var source = al.List[i]; if (source.Type == ColorBits.LINK) //如果为链接贴图。则引用指向贴图的属性 { source = source.Target; } if (source.Canvas_Width > max_width) //最大画布 { max_width = source.Canvas_Height; } if (source.Canvas_Height > max_height) { max_height = source.Canvas_Height; } if (source.Compress == Compress.NONE && source.Width * source.Height == 1) //将透明图层过滤 { continue; } if (source.Width + source.X > width) //获得最右点坐标 { width = source.Width + source.X; } if (source.Height + source.Y > height) //获得最下点坐标 { height = source.Height + source.Y; } if (source.X < x) //获得最左点坐标 { x = source.X; } if (source.Y < y) //获得最上点坐标 { y = source.Y; } if (source.Type > type && source.Type < ColorBits.LINK) { type = source.Type; } } } width -= x; //获得上下左右两端的差,即宽高 height -= y; width = width > 1 ? width : 1; //防止宽高小于1 height = height > 1 ? height : 1; if (width * height > 1) //当贴图面积大于1时,使用zlib压缩 { entity.Compress = Compress.ZLIB; } entity.Type = type; entity.Index = entitys.Count; entity.Location = new Point(x, y); entity.Canvas_Size = new Size(max_width, max_height); var image = new Bitmap(width, height); using (var g = Graphics.FromImage(image)) { foreach (var al in Array) { if (i < al.List.Count) { var source = al.List[i]; if (source.Type == ColorBits.LINK) { source = source.Target; } g.DrawImage(source.Picture, source.X - x, source.Y - y);//绘制贴图 } } } entity.ReplaceImage(type, false, image); //替换贴图 e.Progress++; //拼合进度自增 OnMergeProcessing(e); entitys.Add(entity); } Album.List.AddRange(entitys); OnMergeCompleted(e);//拼合完成 }
/// <summary> /// Handles the Merging event of the versionControlServer control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="Microsoft.TeamFoundation.VersionControl.Client.MergeEventArgs"/> instance containing the event data.</param> /// <remarks>Documented by CFI, 2010-06-27</remarks> protected void versionControlServer_Merging(object sender, MergeEventArgs e) { MessageBox.Show("Merging"); }
public void OnMergeStateChange(MergeEventArgs e) { EventHandler<MergeEventArgs> handler = MergeStateChange; if (handler != null) handler(this, e); }
public void DoMerge(string[] arrFileNames, string saveFile) { MergeEventArgs arg = new MergeEventArgs(); //以合并后的文件名称和打开方式来创建、初始化FileStream文件流 FileStream addStream = new FileStream(saveFile, FileMode.Create); //以FileStream文件流来初始化BinaryWriter书写器,此用以合并分割的文件 long size = 0; using (BinaryWriter addWriter = new BinaryWriter(addStream)) { foreach(string file in arrFileNames) { FileInfo info = new FileInfo(file); size += info.Length; } for (int index = 0; index < arrFileNames.Length; index++) { string file = arrFileNames[index]; // ReSharper disable AssignNullToNotNullAttribute file = Path.Combine(Path.GetDirectoryName(file), String.Concat(Path.GetFileNameWithoutExtension(file), ".fsp", index + 1)); // ReSharper restore AssignNullToNotNullAttribute //以小文件所对应的文件名称和打开模式来初始化FileStream文件流,起读取分割作用 FileStream tempStream = new FileStream(file, FileMode.Open); //用FileStream文件流来初始化BinaryReader文件阅读器,也起读取分割文件作用 BinaryReader tempReader = new BinaryReader(tempStream); int readLength = (int)(tempStream.Length > _maxReadSize ? _maxReadSize : tempStream.Length); int readCount = (int) (tempStream.Length > _maxReadSize && tempStream.Length%_maxReadSize != 0 ? (tempStream.Length/_maxReadSize) + 1 : tempStream.Length/_maxReadSize); readCount = tempStream.Length > _maxReadSize ? readCount : 1; for (int i = 0; i < readCount; i++) { //读取分割文件中的数据,并生成合并后文件 addWriter.Write(tempReader.ReadBytes(readLength)); arg.FileName = file; arg.Percent = (int) (((double) addStream.Length/size)*100); arg.Length = tempStream.Length; OnMergeStateChange(arg); } //关闭BinaryReader文件阅读器 tempReader.Close(); //关闭FileStream文件流 tempStream.Close(); } //关闭BinaryWriter文件书写器 addWriter.Close(); } //关闭FileStream文件流 addStream.Close(); }
public void OnMergeStarted(MergeEventArgs e) { MergeStarted?.Invoke(this, e); }
public void OnMergeProcessing(MergeEventArgs e) { MergeProcessing?.Invoke(this, e); }
private void OnMergeCompleted(MergeEventArgs e) => MergeCompleted?.Invoke(this, e);
public static void Merge(IEnumerable <Album> list, int targetVersion, IMergeProgress progress) { var e = new MergeEventArgs(); list = list.Reverse(); //序列反转 var count = 0; var version = targetVersion > 0 ? (ImgVersion)targetVersion : ImgVersion.Ver2; foreach (var al in list) { if (al.List.Count > count) { count = al.List.Count; } if (targetVersion == 0 && al.Version > version) { version = al.Version; } } var file = new Album { Version = version }; file.InitHandle(null); e.Count = count; e.Album = file; progress.OnMergeStarted(e); //启动拼合事件 var entitys = new List <Sprite>(); for (var i = 0; i < count; i++) { var entity = new Sprite(file); var width = 1; var height = 1; var max_width = 0; var max_height = 0; var x = 800; var y = 600; var type = ColorBits.ARGB_1555; foreach (var al in list) { if (i < al.List.Count) { var source = al.List[i]; if (source.Type == ColorBits.LINK) { source = source.Target; } if (source.FrameWidth > max_width) { max_width = source.FrameHeight; } if (source.FrameHeight > max_height) { max_height = source.FrameHeight; } if (source.Hidden) { continue; } if (source.Width + source.X > width) { width = source.Width + source.X; } if (source.Height + source.Y > height) { height = source.Height + source.Y; } if (source.X < x) { x = source.X; } if (source.Y < y) { y = source.Y; } if (source.Type > type && source.Type < ColorBits.LINK) { type = source.Type; } } } width -= x; //获得上下左右两端的差,即宽高 height -= y; width = width > 1 ? width : 1; //防止宽高小于1 height = height > 1 ? height : 1; if (width * height > 1) { entity.CompressMode = CompressMode.ZLIB; } entity.Type = type; entity.Index = entitys.Count; entity.Location = new Point(x, y); entity.FrameSize = new Size(max_width, max_height); var image = new Bitmap(width, height); using (var g = Graphics.FromImage(image)) { foreach (var al in list) { if (i < al.List.Count) { var source = al.List[i]; if (source.Type == ColorBits.LINK) { source = source.Target; } g.DrawImage(source.Picture, source.X - x, source.Y - y); //绘制贴图 } } } entity.ReplaceImage(type, false, image); //替换贴图 e.Progress++; //拼合进度自增 progress.OnMergeProcessing(e); entitys.Add(entity); } file.List.AddRange(entitys); progress.OnMergeCompleted(e); //拼合完成 }
private void MergeProcessing(object sender, MergeEventArgs e) => prograss.Value++;