private void FileLoader_DoWork(object sender, DoWorkEventArgs e) { ImageResizer.ImageInfo image = ImageResizer.ImageInfo.Build(e.Argument); ImageResizer.ResizeSettings settings = new ImageResizer.ResizeSettings(); settings.ScaleMode = ImageResizer.ScaleMode.None; //image.ResizeImage(settings); e.Result = image; }
internal override Uri SaveImage(Image image, string imageName) { using (ImageResizer.ImageInfo imageI = ImageResizer.ImageInfo.Build(image)) { string destinationfile = UploadFolder + @"\" + imageName; imageI.SaveAs(destinationfile); return(new Uri(destinationfile)); } //ImageConverter _imageConverter = new ImageConverter(); //byte[] imageByteArray = (byte[])_imageConverter.ConvertTo(image, typeof(byte[])); //string destinationfile = UploadFolder + @"\" + imageName; //image.Save(destinationfile);//, System.Drawing.Imaging.ImageFormat.Jpeg); //System.IO.File.WriteAllBytes(destinationfile, imageByteArray); }
private void FileUploader_DoWork(object sender, DoWorkEventArgs e) { FTPConnectionSettings ftp = FTPConnectionSettings.LoadSettings(); if (ftp == null) { throw new Exception("Не указаны параметры подключения к FTP"); } Uploaders.UploaderFTP uploader = new Uploaders.UploaderFTP(ftp, "quickUploads"); uploader.Initialize(); ImageResizer.ImageInfo image = e.Argument as ImageResizer.ImageInfo; string pictureName = $"{Guid.NewGuid()}.{image.SourceExtention}"; Uri result = uploader.SaveImage(image.SourceBitmap, pictureName); e.Result = result; }
public void RunProcess(object sender, DoWorkEventArgs e) { this.BW = sender as BackgroundWorker; this.Parameters = e.Argument as ProcessorParameters; //Loading Items from excel file List <PictureItem> items; BW.ReportProgress(0, "Считываем таблицу..."); using (UsingExcel xls = new UsingExcel()) { items = xls.GetPhotoItems(this.Parameters.ExcelInfo); } if (items == null || items.Count == 0) { throw new Exception("Нет записей в списке"); } string uploadDir = string.IsNullOrEmpty(Parameters.UploadDirectory) ? Guid.NewGuid().ToString() : Parameters.UploadDirectory; if (Parameters.UploadDirection == Uploaders.UploadDirection.LOCAL) { uploadDir = System.IO.Path.GetDirectoryName(Parameters.ExcelInfo.FilePath) + "\\" + uploadDir; } Uploaders.UploaderBuilder builder = new Uploaders.UploaderBuilder(uploadDir); Uploaders.IUploader uploader = builder.Build(Parameters.UploadDirection); uploader.Initialize(); BW.ReportProgress(0, "Сохранение фото..."); ProgressTicker ticker = new ProgressTicker(items.Count, 1); ticker.ProgressChanged += Ticker_ProgressChanged; List <PictureItem> uploadedItems = new List <PicturesUploader.PictureItem>(); foreach (var item in items) { if (BW.CancellationPending) { e.Cancel = true; break; } if (item.Error == null) { try { ImageResizer.ImageInfo image = BuildImage(item.Address); image.ResizeImage(this.Parameters.ImageResizeSettings); string pictureName = $"{item.Name}.{image.SourceExtention}"; item.Address = uploader.SaveImage(image.DestinationBitmap, pictureName); } catch (ImageResizer.ImageCorruptedException) { item.Error = new Exception("Не прямая ссылка на изображение, либо файл поврежден"); } //catch(System.Net.WebException wex) //{ // item.Error = wex; //} catch (Exception ex) { item.Error = ex; } } uploadedItems.Add(item); ticker.Tick(); } using (UsingExcel xls = new UsingExcel()) { BW.ReportProgress(0, "Записываем результат в Excel файл"); xls.UpdatePhotoItems(uploadedItems, this.Parameters.ExcelInfo); } e.Result = items.Count; }