1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
private void CreateIllustration()
{
OpenFileDialog openFIleDialog = new OpenFileDialog();
//openFIleDialog.Filter = "All Image Files ( JPEG,GIF,BMP,PNG)|*.jpg;*.jpeg;*.gif;*.bmp;*.png|JPEG Files ( *.jpg;*.jpeg )|*.jpg;*.jpeg|GIF Files ( *.gif )|*.gif|BMP Files ( *.bmp )|*.bmp|PNG Files ( *.png )|*.png";
openFIleDialog.Filter = "Fichiers JPEG ( *.jpg;*.jpeg )|*.jpg;*.jpeg";
openFIleDialog.FilterIndex = 1;
openFIleDialog.Multiselect = false;
IllustResultatBwUpload = "";
if (openFIleDialog.ShowDialog() == true)
{
if (IllustBwUpload.IsBusy != true)
{
//IllustBusyUpload = true;
Messenger.Default.Send<string>("Busy", "GetBusy");
IllustBwUpload.RunWorkerAsync(openFIleDialog.Files); // traitement en arrière plan afin de permettre au BusyIndicator d'oeuvrer
}
}
}
MemoryStream GetFileData(Stream oFileStream)
{
oFileStream.Seek(0, SeekOrigin.Begin);
byte[] data = new byte[oFileStream.Length];
oFileStream.Read(data, 0, (int)oFileStream.Length);
return new MemoryStream(data);
}
private void bw_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
IEnumerable<FileInfo> Files = (IEnumerable<FileInfo>)e.Argument;
foreach (var file in Files)
{
string str = string.Empty;
Stream fileStream = file.OpenRead();
using (fileStream)
{
// sequence resizing
DecodedJpeg origJpeg = new JpegDecoder(fileStream).Decode();
if (ImageResizer.ResizeNeeded(origJpeg.Image, 1024))
{
//resize de l'image
DecodedJpeg resizedJpeg = new DecodedJpeg(new ImageResizer(origJpeg.Image).Resize(1024, ResamplingFilters.NearestNeighbor), origJpeg.MetaHeaders);
//Encodage de resized image
MemoryStream resizedStream = new MemoryStream();
new JpegEncoder(resizedJpeg, 100, resizedStream).Encode();
//Read resized stream to byte array
resizedStream.Seek(0, SeekOrigin.Begin);
StreamResourceInfo streamResourceFile = new StreamResourceInfo(resizedStream, null);
byte[] data = new byte[streamResourceFile.Stream.Length];
resizedStream.Read(data, 0, Convert.ToInt32(streamResourceFile.Stream.Length));
streamResourceFile.Stream.Read(data, 0, (int)streamResourceFile.Stream.Length);
str = Convert.ToBase64String(data);
}
else
{
//Read original stream to byte array
fileStream.Seek(0, SeekOrigin.Begin);
StreamResourceInfo streamResourceFile = new StreamResourceInfo(fileStream, null);
byte[] data = new byte[streamResourceFile.Stream.Length];
fileStream.Read(data, 0, Convert.ToInt32(fileStream.Length));
streamResourceFile.Stream.Read(data, 0, (int)streamResourceFile.Stream.Length);
str = Convert.ToBase64String(data);
}
WebClient oWebClient = new WebClient();
IllustFileName = Guid.NewGuid().ToString().Replace("-", "") + file.Extension;
// CA PLANTE JUSTE EN DESSOUS lorsque je me mélange les crayons sur le configurationManager.AppSettings (A ne pas confondre avec le même du site web. Ici, il s'agit d'une classe que j'ai récupéré sur le net et que je présente plus loin)
oWebClient.UploadStringAsync(new Uri(ConfigurationManager.AppSettings["UrlSitePath"]+"Uploader.ashx?file=" + IllustFileName), null, str, IllustFileName);
str = string.Empty;
}
}
}
private void bw_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
//this.tbProgress.Text = (e.ProgressPercentage.ToString() + "%");
}
private void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
Messenger.Default.Send<string>("NotBusy", "GetBusy");
if ((e.Cancelled == true))
{
IllustResultatBwUpload = "Transfert annulé !";
}
else if (!(e.Error == null))
{
IllustResultatBwUpload = ("Erreur lors du transfert: " + e.Error.Message);
}
else
{
IllustResultatBwUpload = "Le transfert a été réalisé avec succès !";
CreateIllustrationInDb();
}
} |
Partager