diff --git a/Mk0.Software.ImageSorter/Konverter.cs b/Mk0.Software.ImageSorter/Konverter.cs index deddca4..c78feb5 100644 --- a/Mk0.Software.ImageSorter/Konverter.cs +++ b/Mk0.Software.ImageSorter/Konverter.cs @@ -10,17 +10,28 @@ namespace Mk0.Software.ImageSorter private string imagePath; public string newFilePath { get; set; } - public Konverter(string imagePath, bool auto = false, string autoFormat = "") + public Konverter(string imagePath, bool auto = false, MagickFormat autoFormat = MagickFormat.Png) { - InitializeComponent(); this.imagePath = imagePath; - labelBildname.Text = imagePath; - comboBoxFormat.SelectedIndex = 0; + if (auto) + { + using (MagickImage image = new MagickImage(imagePath)) + { + image.Format = autoFormat; + newFilePath = Path.Combine(Path.GetDirectoryName(imagePath), Path.GetFileNameWithoutExtension(imagePath) + "." + autoFormat.ToString().ToLower()); + image.Write(newFilePath); + } + } + else + { + InitializeComponent(); + labelBildname.Text = imagePath; + comboBoxFormat.SelectedIndex = 0; + } } private void ButtonKonvert_Click(object sender, EventArgs e) { - //todo konvertieren using (MagickImage image = new MagickImage(imagePath)) { if (comboBoxFormat.SelectedItem == "PNG") diff --git a/Mk0.Software.ImageSorter/Main.cs b/Mk0.Software.ImageSorter/Main.cs index f765e34..902c818 100644 --- a/Mk0.Software.ImageSorter/Main.cs +++ b/Mk0.Software.ImageSorter/Main.cs @@ -1292,7 +1292,23 @@ namespace Mk0.Software.ImageSorter /// private void PictureBox_LoadCompleted(object sender, AsyncCompletedEventArgs e) { - Zoom(); + if (e.Error != null && Path.GetExtension(pictureBoxImage.ImageLocation).ToLower() == ".webp") + { + Konverter k = new Konverter(pictureBoxImage.ImageLocation, true); + if (File.Exists(k.newFilePath)) + { + string del = pictureBoxImage.ImageLocation; + images[imageIndex] = k.newFilePath; + LoadPicture(imageIndex); + FileSystem.DeleteFile(del, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin, UICancelOption.DoNothing); + Image myImg = CopyImage.GetCopyImage(k.newFilePath); + ShowAutoConvertMessage(myImg, k.newFilePath); + } + } + else + { + Zoom(); + } } /// @@ -1470,6 +1486,17 @@ namespace Mk0.Software.ImageSorter banner.ShowMessages(); } + /// + /// Anzeige eines Banners bei automatischem Konvertieren von WEBP-Bildern + /// + /// + /// + private void ShowAutoConvertMessage(Image bild, string bildpfad) + { + banner.Enqueue("Das WEBP-Bild \"" + Path.GetFileName(bildpfad) + "\" wurde", "automatisch konvertiert.", bild, Properties.Resources.converted); + banner.ShowMessages(); + } + /// /// Anzeige eines Banners bei erstelltem Duplikat /// diff --git a/Mk0.Software.ImageSorter/Mk0.Software.ImageSorter.csproj b/Mk0.Software.ImageSorter/Mk0.Software.ImageSorter.csproj index 68bf28d..866f0a0 100644 --- a/Mk0.Software.ImageSorter/Mk0.Software.ImageSorter.csproj +++ b/Mk0.Software.ImageSorter/Mk0.Software.ImageSorter.csproj @@ -231,6 +231,7 @@ + diff --git a/Mk0.Software.ImageSorter/Properties/Resources.Designer.cs b/Mk0.Software.ImageSorter/Properties/Resources.Designer.cs index f2494d9..98684e6 100644 --- a/Mk0.Software.ImageSorter/Properties/Resources.Designer.cs +++ b/Mk0.Software.ImageSorter/Properties/Resources.Designer.cs @@ -220,6 +220,16 @@ namespace Mk0.Software.ImageSorter.Properties { } } + /// + /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap converted { + get { + object obj = ResourceManager.GetObject("converted", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. /// diff --git a/Mk0.Software.ImageSorter/Properties/Resources.resx b/Mk0.Software.ImageSorter/Properties/Resources.resx index b1130b6..f451d90 100644 --- a/Mk0.Software.ImageSorter/Properties/Resources.resx +++ b/Mk0.Software.ImageSorter/Properties/Resources.resx @@ -259,4 +259,7 @@ ..\Resources\inpaint-reloadfile.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\converted.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/Mk0.Software.ImageSorter/Resources/converted.png b/Mk0.Software.ImageSorter/Resources/converted.png new file mode 100644 index 0000000..cc9b04a Binary files /dev/null and b/Mk0.Software.ImageSorter/Resources/converted.png differ